Input Data Messages (IDM)
Decentralized communication on Ethereum.
Filter by:
1,612 IDM

🚨 BUNDLE DETECTED! 🚨🥷 Launch smarter with @bundlefren — the most secure and cost effective bundler on Ethereum!🎥 Live Demo: https://www.youtube.com/watch?v=9_Q1sQ-VXAs🔗 Website: https://bundlefren.com📲 Telegram: https://t.me/bundlefren📘 Docs: https://docs.bundlefren.com🚀 Free Bundle Tracker: https://t.me/bundlefren_tracker🐦 Twitter: https://x.com/bundlefrenAudited by DappRadar - https://dappradar.com/dapp/bundle-fren
at txn 0x262d57aa6e986d0ce7adbbc2457a6715d8c19ba634b6b817a74d50db6f3898fa Sep-11-2025 06:50:59 PM UTC (9 hrs ago)

0x2CA9091aE6c99f80acd832a09d7fd3760c11c39e
at txn 0x221c4fb5d927ef761e0661f5bf82f6687a3acb7c7b32453ef893dd1c1ce02c25 Sep-11-2025 06:50:35 PM UTC (9 hrs ago)

fee refund
at txn 0xa96f19df5fcddac401fd81d2556e4f22c95817e182ba0e6a04f804c3a7bbacd4 Sep-11-2025 06:46:35 PM UTC (9 hrs ago)

fee refund
at txn 0x437045e4ffe9feada7f170c4ca2bf353581fb89075814d8af8607b6848b75349 Sep-11-2025 06:46:23 PM UTC (9 hrs ago)

We buy your locked LP💰♦️Web: aurumx.io♦️Community: t.me/AurumXLabs♦️X: x.com/AurumXLabsLocked. Listed. Liquid.
at txn 0x961045780f8ba609318bc8f579d6b9be60be428a4c8d1fd27e8eb91ff14f05dd Sep-11-2025 06:45:59 PM UTC (9 hrs ago)

We buy your locked LP💰♦️Web: aurumx.io♦️Community: t.me/AurumXLabs♦️X: x.com/AurumXLabsLocked. Listed. Liquid.
at txn 0x69b79cb670e9c419b28b2dd4a2b80832f3747108db70f2214ec9ea133a36048b Sep-11-2025 06:44:23 PM UTC (9 hrs ago)

EM
at txn 0xf5ff4c7a35fd14fddadd594bd8d1e14c4ecf1349916cc18d7a8cb53859e42ddd Sep-11-2025 06:42:47 PM UTC (9 hrs ago)

Rob From Zelcore
at txn 0x6519e78b40f55628d055c53d5eded44802f93edec129309dccc7eafc138ca0be Sep-11-2025 06:41:35 PM UTC (9 hrs ago)

=:r:thor1f0dam0fjhfnaez5nc3y0jgqnmfurd0r4j2h0cq:0/1/0:va:0
at txn 0xb4da385b06008014090ec1d53d1438300f61646a12a4ea84d0f55ead2ddf0944 Sep-11-2025 06:37:47 PM UTC (9 hrs ago)

0xcF9B23Ab989A53886B85F5A08146C50afe7a4225
at txn 0x50ac65998dd25b4873579dba03145439fdd9bc43e11d993bf056ddb450cc4045 Sep-11-2025 06:34:35 PM UTC (9 hrs ago)

pi\
at txn 0x977fa073f19063523260329d335fcc66a0a60e95e0501522c932704c108a7f42 Sep-11-2025 06:34:23 PM UTC (9 hrs ago)

pi@
at txn 0x11a00c69d7c2b51deec4731e92dfc5e29770b9be67d8d348084e52d816019bbc Sep-11-2025 06:31:59 PM UTC (9 hrs ago)

We buy your locked LP💰♦️Web: aurumx.io♦️Community: t.me/AurumXLabs♦️X: x.com/AurumXLabsLocked. Listed. Liquid.
at txn 0xc1f60c8aff60a5abf1cf34aa6dbdcddfc623f716045bdafd7750f7235a3ce773 Sep-11-2025 06:31:47 PM UTC (9 hrs ago)

data:,{"targetChain":"10143","targetAddress":"0x31e4044Bd1F7f9292E87C70E76701cf9E2d3dEef","action":"gas_deposit"}
at txn 0xed1ec736e9ac2bce40dd1dd2e6aeeb907489d07bb26621744f3b6c3b4a6e7b86 Sep-11-2025 06:30:59 PM UTC (9 hrs ago)

0x981249b365d582Ec476aa7f5cDe6629729d651E7
at txn 0xcf252a99acd4c2c42b5ab93d9a9a10738b0e92df35784bb6c77f4c81ee889ccf Sep-11-2025 06:29:35 PM UTC (9 hrs ago)

Ignore
at txn 0x5a16ddc5748b30ce468023eb9724d862b533d18b76c1a410c548cc61442a6bff Sep-11-2025 06:28:11 PM UTC (9 hrs ago)

fee refund
at txn 0xcead0fcb7ed878a3651945e6515b827f995808ba7d72f8702143c166ac807bc1 Sep-11-2025 06:27:35 PM UTC (9 hrs ago)

fee refund
at txn 0x620041ea8794f2978c47cf51c42a2587a41a2ac7bcd5f9bd7bca46bd90a96531 Sep-11-2025 06:24:23 PM UTC (9 hrs ago)

Ave Maria, gratia plena,Dominus tecum.Benedicta tu in mulieribus,et benedictus fructus ventris tui, Iesus.Sancta Maria, Mater Dei,ora pro nobis peccatoribusnunc et in hora mortis nostrae.Amen-----------------------------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXx++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxx+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxXx+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXXXXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$-----------------------------------Magnificat anima mea Dominum,et exsultavit spiritus meus in Deo salutari meo,quia respexit humilitatem ancillae suae.Ecce enim ex hoc beatam me dicent omnes generationes,quia fecit mihi magna qui potens est,et sanctum nomen eius,et misericordia eius in progenies et progeniestimentibus eum.Fecit potentiam in brachio suo,dispersit superbos mente cordis sui;deposuit potentes de sedeet exaltavit humiles;esurientes implevit boniset divites dimisit inanes.Suscepit Israel puerum suum,recordatus misericordiae,sicut locutus est ad patres nostros,Abraham et semini eius in saecula.-----------------------------------O mi Jesu, dimitte nobis debita nostra,salva nos ab igne inferni,perduc in caelum omnes animas,praesertim eas, quae misericordiae tuaemaxime indigent.-----------------------------------Pater noster, qui es in caelis,sanctificetur nomen tuum.Adveniat regnum tuum.Fiat voluntas tua,sicut in caelo, et in terra.Panem nostrum cotidianum da nobis hodie,et dimitte nobis debita nostra,sicut et nos dimittimus debitoribus nostris.Et ne nos inducas in tentationem,sed libera nos a malo.Amen.-----------------------------------$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;+++++++++++++++++++++;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxxx+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx
at txn 0x50495a3fdcd699fbb0e9a3e8d0e4f1c59d98253b1f1f0c0d9f47294949f1a164 Sep-11-2025 06:23:23 PM UTC (9 hrs ago)

Ave Maria, gratia plena,Dominus tecum.Benedicta tu in mulieribus,et benedictus fructus ventris tui, Iesus.Sancta Maria, Mater Dei,ora pro nobis peccatoribusnunc et in hora mortis nostrae.Amen-----------------------------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXx++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxx+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxXx+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXXXXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$-----------------------------------Magnificat anima mea Dominum,et exsultavit spiritus meus in Deo salutari meo,quia respexit humilitatem ancillae suae.Ecce enim ex hoc beatam me dicent omnes generationes,quia fecit mihi magna qui potens est,et sanctum nomen eius,et misericordia eius in progenies et progeniestimentibus eum.Fecit potentiam in brachio suo,dispersit superbos mente cordis sui;deposuit potentes de sedeet exaltavit humiles;esurientes implevit boniset divites dimisit inanes.Suscepit Israel puerum suum,recordatus misericordiae,sicut locutus est ad patres nostros,Abraham et semini eius in saecula.-----------------------------------O mi Jesu, dimitte nobis debita nostra,salva nos ab igne inferni,perduc in caelum omnes animas,praesertim eas, quae misericordiae tuaemaxime indigent.-----------------------------------Pater noster, qui es in caelis,sanctificetur nomen tuum.Adveniat regnum tuum.Fiat voluntas tua,sicut in caelo, et in terra.Panem nostrum cotidianum da nobis hodie,et dimitte nobis debita nostra,sicut et nos dimittimus debitoribus nostris.Et ne nos inducas in tentationem,sed libera nos a malo.Amen.-----------------------------------$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;+++++++++++++++++++++;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxxx+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx
at txn 0xf17eb5c7a92bddc13cce824cc2076470eeadcecca1c4d17a102545f8bf2227a3 Sep-11-2025 06:23:11 PM UTC (9 hrs ago)

Ave Maria, gratia plena,Dominus tecum.Benedicta tu in mulieribus,et benedictus fructus ventris tui, Iesus.Sancta Maria, Mater Dei,ora pro nobis peccatoribusnunc et in hora mortis nostrae.Amen-----------------------------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXx++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxx+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxXx+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXXXXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$-----------------------------------Magnificat anima mea Dominum,et exsultavit spiritus meus in Deo salutari meo,quia respexit humilitatem ancillae suae.Ecce enim ex hoc beatam me dicent omnes generationes,quia fecit mihi magna qui potens est,et sanctum nomen eius,et misericordia eius in progenies et progeniestimentibus eum.Fecit potentiam in brachio suo,dispersit superbos mente cordis sui;deposuit potentes de sedeet exaltavit humiles;esurientes implevit boniset divites dimisit inanes.Suscepit Israel puerum suum,recordatus misericordiae,sicut locutus est ad patres nostros,Abraham et semini eius in saecula.-----------------------------------O mi Jesu, dimitte nobis debita nostra,salva nos ab igne inferni,perduc in caelum omnes animas,praesertim eas, quae misericordiae tuaemaxime indigent.-----------------------------------Pater noster, qui es in caelis,sanctificetur nomen tuum.Adveniat regnum tuum.Fiat voluntas tua,sicut in caelo, et in terra.Panem nostrum cotidianum da nobis hodie,et dimitte nobis debita nostra,sicut et nos dimittimus debitoribus nostris.Et ne nos inducas in tentationem,sed libera nos a malo.Amen.-----------------------------------$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;+++++++++++++++++++++;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxxx+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx
at txn 0x27b5ba8fd0bc9998f6d85ad214fdf30d72d155fe1663d0d23bb1d559f2c54d74 Sep-11-2025 06:22:59 PM UTC (9 hrs ago)

Ave Maria, gratia plena,Dominus tecum.Benedicta tu in mulieribus,et benedictus fructus ventris tui, Iesus.Sancta Maria, Mater Dei,ora pro nobis peccatoribusnunc et in hora mortis nostrae.Amen-----------------------------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXx++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxx+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxXx+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXXXXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$-----------------------------------Magnificat anima mea Dominum,et exsultavit spiritus meus in Deo salutari meo,quia respexit humilitatem ancillae suae.Ecce enim ex hoc beatam me dicent omnes generationes,quia fecit mihi magna qui potens est,et sanctum nomen eius,et misericordia eius in progenies et progeniestimentibus eum.Fecit potentiam in brachio suo,dispersit superbos mente cordis sui;deposuit potentes de sedeet exaltavit humiles;esurientes implevit boniset divites dimisit inanes.Suscepit Israel puerum suum,recordatus misericordiae,sicut locutus est ad patres nostros,Abraham et semini eius in saecula.-----------------------------------O mi Jesu, dimitte nobis debita nostra,salva nos ab igne inferni,perduc in caelum omnes animas,praesertim eas, quae misericordiae tuaemaxime indigent.-----------------------------------Pater noster, qui es in caelis,sanctificetur nomen tuum.Adveniat regnum tuum.Fiat voluntas tua,sicut in caelo, et in terra.Panem nostrum cotidianum da nobis hodie,et dimitte nobis debita nostra,sicut et nos dimittimus debitoribus nostris.Et ne nos inducas in tentationem,sed libera nos a malo.Amen.-----------------------------------$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;+++++++++++++++++++++;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxxx+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx
at txn 0x07259805926248c3ccaf0654e12a0fdbe58571d771ecfaa20124d3a802209d33 Sep-11-2025 06:22:23 PM UTC (9 hrs ago)

Ave Maria, gratia plena,Dominus tecum.Benedicta tu in mulieribus,et benedictus fructus ventris tui, Iesus.Sancta Maria, Mater Dei,ora pro nobis peccatoribusnunc et in hora mortis nostrae.Amen-----------------------------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXx++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxx+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxXx+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXXXXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$-----------------------------------Magnificat anima mea Dominum,et exsultavit spiritus meus in Deo salutari meo,quia respexit humilitatem ancillae suae.Ecce enim ex hoc beatam me dicent omnes generationes,quia fecit mihi magna qui potens est,et sanctum nomen eius,et misericordia eius in progenies et progeniestimentibus eum.Fecit potentiam in brachio suo,dispersit superbos mente cordis sui;deposuit potentes de sedeet exaltavit humiles;esurientes implevit boniset divites dimisit inanes.Suscepit Israel puerum suum,recordatus misericordiae,sicut locutus est ad patres nostros,Abraham et semini eius in saecula.-----------------------------------O mi Jesu, dimitte nobis debita nostra,salva nos ab igne inferni,perduc in caelum omnes animas,praesertim eas, quae misericordiae tuaemaxime indigent.-----------------------------------Pater noster, qui es in caelis,sanctificetur nomen tuum.Adveniat regnum tuum.Fiat voluntas tua,sicut in caelo, et in terra.Panem nostrum cotidianum da nobis hodie,et dimitte nobis debita nostra,sicut et nos dimittimus debitoribus nostris.Et ne nos inducas in tentationem,sed libera nos a malo.Amen.-----------------------------------$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;+++++++++++++++++++++;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxxx+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx
at txn 0x904d4ce02251ce13988731640484e3ae54de04dc395b13281f7aaf0f26852efb Sep-11-2025 06:22:11 PM UTC (9 hrs ago)

Ave Maria, gratia plena,Dominus tecum.Benedicta tu in mulieribus,et benedictus fructus ventris tui, Iesus.Sancta Maria, Mater Dei,ora pro nobis peccatoribusnunc et in hora mortis nostrae.Amen-----------------------------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXx++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxx+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxXx+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXXXXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$-----------------------------------Magnificat anima mea Dominum,et exsultavit spiritus meus in Deo salutari meo,quia respexit humilitatem ancillae suae.Ecce enim ex hoc beatam me dicent omnes generationes,quia fecit mihi magna qui potens est,et sanctum nomen eius,et misericordia eius in progenies et progeniestimentibus eum.Fecit potentiam in brachio suo,dispersit superbos mente cordis sui;deposuit potentes de sedeet exaltavit humiles;esurientes implevit boniset divites dimisit inanes.Suscepit Israel puerum suum,recordatus misericordiae,sicut locutus est ad patres nostros,Abraham et semini eius in saecula.-----------------------------------O mi Jesu, dimitte nobis debita nostra,salva nos ab igne inferni,perduc in caelum omnes animas,praesertim eas, quae misericordiae tuaemaxime indigent.-----------------------------------Pater noster, qui es in caelis,sanctificetur nomen tuum.Adveniat regnum tuum.Fiat voluntas tua,sicut in caelo, et in terra.Panem nostrum cotidianum da nobis hodie,et dimitte nobis debita nostra,sicut et nos dimittimus debitoribus nostris.Et ne nos inducas in tentationem,sed libera nos a malo.Amen.-----------------------------------$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;+++++++++++++++++++++;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxxx+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx
at txn 0xdf3fe440153f24c8db725ab19c0cb10d6f6a889d6d4906ff4ece08e8bad3121f Sep-11-2025 06:21:59 PM UTC (9 hrs ago)

Ave Maria, gratia plena,Dominus tecum.Benedicta tu in mulieribus,et benedictus fructus ventris tui, Iesus.Sancta Maria, Mater Dei,ora pro nobis peccatoribusnunc et in hora mortis nostrae.Amen-----------------------------------XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxxxXXxxxxxxXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxXXxxxxxxxxxxxxXXXxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxXxXXxXxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxXXxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxxxxxxxXxXxXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxXxxxxxXxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$X$$XXXXXxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxXXX$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxXxxXXXxxXX$$$$$$XXXX$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$XXXXXxxxXxxxxxxxxxxxxxXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$XXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XX$X$$$X$$$$$$$XXXXXXXX$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXX$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxxxXXXXXXXXXXX$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$$XXXX$$$$$$$$$$$XXXXXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxx++++++;++++++++++++++xxxxXXXX$$XXXX$$$$$$$$$$$$XXXxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx++++++++;;;++;;;;;;;;;;+;+++++++xxXXXXXXXXXX$$$$$$$$$$$XXXxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;++++++xxxxxXXX$$XXX$$$$$$$$$$$XXxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxXXXXXXX$$$$$$$$$$XXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxXXxxxxxXXXXXXXX$XXXXXXXXXxxxxxXXXXXxxxx+++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXXXXX$$$$$$$$$$XXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXX$$$XXXXXXXXXXXXXXXXXXxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxXXX$$$$$$$$$$$$$XXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxxxxxxXXXXXX$$$XXXXXXXXXXXX$$XXXXxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXXX$$$$$$$$$$$$$$XXxxXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXX$$$$$$$$XXXXXX$$$$XXXXxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxXXxxxXXXXXX$$$$$$$$$$$XX$$$$$$XXXXxxx++++++++++++++++++++;;;;;;;;+;;;;;;;;;;+++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++xxxXxx+++;;;+++++;;;++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$X$$XXx+++++++++++++++++++++++xxxXxx++++++;+;;;+++++++++++++xxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXX$$$$$$$$$$$$$$$XX$$$XXxx+++++++++++++++++++++++++++xxx+++++++++++++++++++++++xxxxXXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$XX$$$XXXxx++++++++++++++++++xxx++++++++++++++++++++++++++++++++xxxxXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXX$$$$$$$$$$$$$XXXX$$XXXXx++++++++++++++xxXXXXXXXXXx+++++++++++++++++++++++xxxxxxXxXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxxxxxxxxxXXXXXX$$$$$$$$$$$$XXXX$$$XXXxx+++++++++++xXXXX$&&&$XxxxXXx+++++++++++++++++xxxxXXX$$$$XXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXX$$$XXXXx++++++++++++xx++xXXXXXXXxxxxxx+++++++;++++++++xxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$XX$$$$$$XXXx+++++++++++++xx+;;;+++++++xxxx++++++++;++++++xxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxXXXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXxx+++++++;+++++++++++++++++++x+++++++++;;++++xxXXxxxxxxxxXXxXXXXX$$$$$$$$&$$$&&$$$$$XXXXXxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++xxxxxx++++++++;;+++xXXXXXXX$$$$$$$$XXXXX$$$$$$$$&&$$$$$$$$$$XXXxxXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++++++++++++++++++++++++xxxx+++++++++++++xX$$XXXXX$$&$$$$XXXXXX$$$$$$$$$$$$&$$$$$$$XXXxXXXxXxXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXX$$$$$$$$$$$$$$X$$$$$$$$$$$Xxx++++++++;;+++++++++++++++++++;;;+++++++++xX$$XXXxxxXXX$&&$XXX$XX$$$$$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++;;;;+++++++++++++++;;;++++++++++xxXXXXxxx++++xXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$X$$$$$$$$$$$XXXXxx++++++++;;;++++++++++++++;;;;;++++++++++xXXXXXx++++++xxxxXX$$$$$$$$$$$&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$X$$$$$$$$$$$XXXXx+++++++++;;;+++++++++++++++;;++++++++++++xXXXXXx+++++xxxxXXX$$$$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$$$$$$$$$$$XXXxx+++++++++;;;;+;++++++++;;;;;;+++++++++++xxXXXXXxxxxxxxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XXX$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++;;+++++++++++xXXXxxxxxxxxxxxxXXXX$$$$$$$$$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXX$$$$$$$$$XXXXxxxx+++++++++++++++++++++++++;;++++++;+;;+++xXXXxxx+xxxxxxxxXXXXXX$$$$$$$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXX$$$$$$$XXxxxXxxx++++++++++++++++++++++++;;+++++xxxx+x+++xxXXXxx+++++++xxxxxXXXX$$$$$$$$$$$$&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$X$$XX$$$$$$$XXxxxxxxxxx++++++++++++++++++++++++++xxX$$XXXxxxxxXxxxx+++++++++xxxxXXX$$$$$$$&&&&&$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XX$$$$$$$$$$$$Xxxxxxxxx++++++++++++++++++++++++++++++++++xxXXX$$XxXXx++++++++xxxxxXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XXX$$$$$$$$$$$$XxxxXxxx++++++++++++++++++++++++++++;;;;;;+xXXX$$XXXXXx++++++++xxxxXXXX$$$$&&&&&&&&&&&&$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$X$$$$$$$$$$$$$XXXXXxx++++++++++++++++++++++++++++++;;;++++xxXXXXXXx+++++++++xxxxXXX$$$$$&&&&&&&&$&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx++++++++++++++++++++++++++++++++++++;+xxxxxxx+++++++++xxxxXXXX$$$$$&&&&&&&&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++++++++++++++++++x++++xxxxxx+++x++xx+x++++++++++xxxXXXX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++xxX$$$$$XXXXxxxxXxxx+++++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++++xXXX$$$$$$XX$Xxxxx+++++++++xxxxXXXXX$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&$$$$$$$XXxxx++++++++++++++++;++++++++xxxxXX$$$&&$Xxxxxxx+++++xxxxXXX$$$$$$$&&&&&&&&&&$&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxx++++++++++++++++++++++++++++++xxxxXX$$$XXxxx+++xxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&$&&$$$$$$XXxx+++++++++++++++++++++++++xxxxxxxxxXXXXxxxxxxxxxxxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$$&&&&$$$XXxxx+++++++++++++++++++++xxxxxxxXXXXXXXxxx++xxxxxxxXXXXX$$$$$$$$&&&&&&&$$&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&$&&&&$$$$XXxxxx+++++++++++++++++++++++++++xxxXXxxxxxxxxxxxxxXXXXX$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&$$$XXXxxxxx+++++++++++++++++++;;;+++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXxxxxxx+++++++++++++++++;;;;+++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXxx+++++++++++++++++++++++++++++++xxxxxxxxxxxXXXXXXXX$$$$$&&&&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++xxxxxxxxx+++++++++++++++xxxxxxxxxxxxxXXXXXX$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx+++++++xxxxxxxxxxxxxxxxxx++++xxxxxxXxxxXxxxxXXXX$$$$$$$&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$XXxx++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXX$$$$$$$&&&&&&&&&&&$$$$&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx++++++++++++++xxxxxxxxXXXXXXXXXXXXxxxxxxxxX$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxx++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$&&&&&&&&&&$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxx++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXXX$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx+++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++xxxxxxxxxXXXXXXxXXXXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx++++++++++;;+++++++++xxxxxxxxXXXxxxxxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxx++++++++++;+;+++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++;;;;;+++++++++++xxxxxxxxxxxxXXXX$$$$$$$$$$$$$$$&$$$$$$$$$$&$$&&$$$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++;++++++++++++xxxxxxxxxxXXXXX$$$$$$$$$$$$$&$$XX$$XXX$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxx+++++++++++++++++++++++++++++xxxxxxxxXXXXX$$$$$$$$$$$$XxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxx+++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXXXX$$XxxxxXX$$X$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxx+++++++++++++++++++++++++++++x++xxxxxXXXXXXXXXXXXXxx++xXXXXXXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&$$$$$$$$$$$XXXxxxxxx+++++++++++++++++++++++++++++++xxxxxxxXXxxxXXxx+xxxxx+xxxxxXxxxXxxxxxxXxxXXXXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++xx+xxxxxxxxx++++xxxxxxxxxxxXxxxxxxXXXXXXXXXXXXXXX$$$&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXxxxx++++++++++++++++++++++++++++++++++++++xx+++++++xxxxx+++xx++++;;;++x++++xxxxxxxxxXxxXXXXXXXXXXXXX$$X$$$&&$$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++xxxxxxxxxx++++xxXxxxxxXxXXXXXXXXXXXXXX$$$$&&&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxx++++++++++++++++++++++++++++++++++;;;;;++++++++++++++++++++++x+++++++xxxxxxxxxxx+xxxxxxxXXXxxxXXXXXXX$$XXXXX$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXxxxx++++++++++++++++++++;;+++++++++;;;;;;;;;;;+;+++++;++++++++++++x+++++x+++++xxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$XXXXXXxxxxx++++++++++++++++++;;;;;;+++++;+++;;;+;;;;;;+;;++;;;;+;;+++++++++xxx+xx+xx+++xxxxxxxxxxxXXXxxXXXXxXXXXXXXXX$$$XXXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXxxxx++++++++++++;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx++xx+++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$XX$$XXXXX$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$$XXXXXXXXxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++++++xx+++xxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$XXXX$$$$$&&&&&&&&&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxx+++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++xxxxx++xx++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$XXXXXXXXXxxxxxxx+++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++++++++++xxxxxx++xxxx+++++x+++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$&&$$&&&&&&$$$$$$$&&$$$$$$$&$$$$$$$$$$$$X$$$$XXX$$$$$XXXXXX$X$$$XXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$XXXXX$$$$$$$$$$XXXXXXxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++xx++++++xxxxxxxxxx+xxxxxx+xxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXX$X$$$$$$$$$$$&&$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXX$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XX$$$$$$$XXXXXxxxx+++xx+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;+++++xxxxxx+++++xxxxxx+++++xx+xxxxXXXXXXXXXXXxxxXXxxXXXXXXXXX$XXXXX$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$XXX$XXXXXXXXxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxx+++++++++x+++xxxxXXXXXXXXXxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$XX$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$XXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xx+;;;;;;;;;;;;;;;;+++++++;++++++++xx+++++++++++++++xxxxxXXXXXxxxx+++xxxxxxxxxxxxxxxxxXXX$XX$$XX$$$$XXXX$$$$$$$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXX$X$XXX$XXXXXXXxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxx++;+;;;+;++++;;++++++++++++++++++xx+++xxxxxxxxxxxxXXXXxXxxxxxxxxxxx++++++++++xxxxxxxxxxxXXXXX$$X$$$$$XX$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$X$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXxXxx++xxXxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xx++++++;++++++++++++++++++++++++;++++xxx+xxxXXXXXXXxXXXXXXxxx++xxxxxxxxXXXxxXXXXXXXxxxXxxxxxxXXXX$XX$$$$$$$$$&$&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxXxxXXxXXXxxXXXXXXXXXXXX$$$$$X$X$XX$$XXX$XXXXXxxXXXXXX$$$$$$$$$&$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$X$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx++++++++;;;;;;+++++;;;;;;;;;;;;;;;;;+++++++++xxxx++++++++++++++++++xxxxxxxxxxxxxxxxxx+xxxxXxXXxxXXXXXXxxxXXXxXXXXXXXXXXXXXXX$$XX$$XX$$$$$XXXXXXXXXXXXX$$$$$$$$$$&&&&&&&&&$$$$&&&$$$$$$$$$$&$$$$$$$$$&&$&&$$$$$$$$$$$X$XX$$X$XXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXxxxxx+++++++++;;;;++++++++;;;;;;;;;:;;;+++;+++++xxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxxxXXXxxxXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxXxxxXXxxxx++x+++++++;;+x+++++++;;;;;;;;;+++;;;++++xXXXxXXXXXXxxxxxxxxxxxxXXXXXxxxxxxxxxxXXXXXXxXXXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$&$$$$XX$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxxx++xxxxxxxxxxxxx++++;;;;+++;+++xxxx+;;;;+++;;;;++++xXXXxXXXXXXXXXXXXxxxxxxxXXxxxXXXXxxxxxxXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXxXxxXXxXXxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXxxxxxxxxxxxxxxxxxXxx+++++++++++;;++++xxxxxx++++;;++++++xxXXXXX$$$$$XXXX$XXxxxxxxxxxxxxxxxxxXxxxxX$$$$X$$XXXX$$$$$XXXXXXXXXXXXXXXXXXxxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&$$&&$$$$$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXxxXXxxxxxxxxxxxx++++++++++++++++++;;;;;;;+++xxXXXXXX$$$$$$$$$$$$$XXXXXXxxxxxxxxxxxxxXXxxXX$$$$$$XXXXX$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++xxx+xxxxxXxxxXXXxxxXXXxxxxx+++++++++++++++++++++++++++xXXXXXXxxx++++xxxxxxxxxxxXXXXXXXXXXxxxxx+xxxXX$XX$$$$$$$X$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$$$$$$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++x+xxxxxxx++xxXxxxxXXXXxx+++++++++++;+++++++++++++++++++xx++++++++++++++xxxxxxxxxxxXXXXXXXXXXXXXXXXXX$X$$$$$$$$$X$XX$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x+++xx++++xxxxxxxxxxXXXxx++++++++++++;;+++++++++++++++;;+++++;;++++++++xxxxxxxxxXXXXXXX$$$$$$$$X$XXX$$X$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&&&&$$$$$$$$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++x+xx++xxxxxxxXxxxxx++++++++;;;++;;;;;+++++++++++++++++++++++++xxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++xxx+xXXxx+++++++++;;;;;;;;;;;;;;;;+++++++++++++++++++++xxxXXX$$$$$$$$$$$$$$&&$$$$$$&&&$$$$$$$$$$X$$$$$$$$$$$XX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++;+++++++xxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++xxXXXX$$&&&&$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxx+++++++xx+++x+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;++++++++++xxxxxxXX$$$$$$&$$$$$$XX$XX$$$$&$$$$$$$$&&&&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$&&&$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++++++++xxxxxxxXXXX$$$&$$$$$X$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+;;;;+++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxxxX$$$X$$$$$$$X$$$$$&$$&&&$$$&&&$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&$$&&$$$$$$$$$$$&&&&$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++;;+;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxxx+xxxxxxxxxXXXXX$$$$$$$$$$$$$$$&&&&$$$$$$&&&&$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&$&&&$$$$$$$$$$$&&$&&&&&&&$$$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++xXx+;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++++++xxxxXXXX$$$$$$$$&$&&$$$$$$$$$$&&$&&$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++;;;;;;;;+;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++;++++++++++xxxxxxxxX$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++;;;;;;;;;;++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxXXxxxXxXX$$$$$$&&$$$$$$$$$$&&&&&&&&&$&&&$&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;;;;;;;;;;++;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;++++++++++++++++++++++++++++++xxxxxxXXXXXXXXXXX$$XXX$$$XX$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&$&&&&&&&&&$$$$$&&&$$$$$&&$$$$$$$$$$$$$$$$$&$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&$$&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXXXXXXXXx;;++;+++;:;;;;;;;;;;++;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++xxx+++++++++++xxxxxxxxxxxxxxxX$$$$$$$$XXXXxxxxxXXXXxXXXXXXX$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$&&$$&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxXXX+;;++++;;;;;;;;;;;;;:;++;:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxx++++xxxxxxxxxxxxxxxxxxXXXXX$$XX$$$$X$XXXXXxxxxxxx++++++x+++++++xxxXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXx;;;++++;;;;;;;;;;:;;;;;++:;;;:;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXxxxXXXxxxxXXXXXXXXXXXXXXXXXXXxXXXXxxxx+++++++++++++++++++++++xxxxxXXX$$&&&&&$$$&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXxxxxXXxxXXXXXXXXXXXXXx;;+;++;;:;;;;;;;;;;;;;;;+;;++;;:;::;;;;;;;;+;;;;;;;;;;;;;;;;++++++++xxXX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxx++++++++++++;++;++;;++++++++++++xxxxX$$$&$&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&&$$$$$$$XXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxXXxXXxxXXx;;;;;;;;:;;;;;;;;;;;;;;;;+;;++;;;;;;;;;;;;;;+;;;;;;;;;;;;;+++x+++xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXxxx++xxx+xx+xx++++++++++++;;;;;;;;;;;;;;;;++++++++++++xxXX$$$$$$$&&&&&&&&&&&&$&&$$$&&$$$$$$$X$$$$$$$$$$$$$$$$$XXXXXX$XXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&&&&&$$$$$$$$$&&&$&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXxxxxxxxxXxxxxxx+;;;;;;;;;;;;;;;;;;;;;;::;++;+;;;;;;;;;;;;;;;;++;;;;;;;;++++++++xxXXXX$$$$X$$$$XXXXX$XX$XXX$$$XXXXxxxxxx+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++XX$XX$$$$$&&&&$$$$$$$XXXXXX$$$$$$$$$$$XXXXXXXX$$$$$$$$XXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXxXXXXxxxxxxXxxxxxxxxx+;;;;;;;;;;;;;;;;;;;;;;;;:;+x+++;;;;;;;;;;;;;;;;+++;;+++++++++xxxXXXXXX$$$$$$$$$XX$$$XXXXXXXXXX$$$$$$$XXXXXxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;+++++xXXXXXXX$$&$$$$$$$$$$$XXXXXxXXXXXXXXXXXXXXXXxXX$$$$$$$XX$XXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXxxxxXXxxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;;;++++++++++++xxXXXXXX$$$$$$XXX$$$XXXXXXXXXXXXXXXXXXX$$XXXXXxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXXXXXXXXX$$X$$XXXXxxxxxxxxXxXXXXXXXXXxXXXX$$$$$$$$$XXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXxxxXXXxxxxXxxxxxxxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;++x+x++++xxX$$$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxXXXxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXXXX$$$$XXXXxxx++++++xxxxxxxxXXXXXXXxXXX$$$$$$$XXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxx++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;++;+++x+x+xxXXX$$$$$$$$$XXXXXXXXXXXXXXXXXxxxx+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxxXXx+;;;+;;+++xxxxxXXXXXXXxxX$$$$X$$XXxxX$$$$&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXXxxxxXxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++++;;;;;;;;;;;;;;;++++++xxXXX$XXXX$$$$$$XXXXXXXXXXXXXXXXX$XXXXxxxxxxxxxx++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++++xx++;;+++++xxx+;;;;;;+++++xxxXXXxxxxXX$$$$$XXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXxxxxxxxxxxxxx+++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;+xXx+xxXXXX$$$$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+++;;;;;;;+++++x+;;;;;;;;;+++++xXXXXXXX$$$$$$$$XXXX$$$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXxxxxxxxxxxxxxXxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;++x+++;;;;;;;;;;;;++++xxxXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXxxx+++++++++++;++;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;++++++;;;;;;;;;;;;;++xXXXXX$$$$$$$$XXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxXXXxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++x++++;;;;;;++;;++x+++xxXXxX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$XXXxxXXXXXXXX$$$$$$XXXXXXxxxxxxxx+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;++xxXXX$$$$$$$$$XXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxxXXXxxxxxxxxxxxxXxxxx++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx++;;;;+++++++++++++xxXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$XXXxxxxxxxxXXXX$X$$$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxx++++;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;++++xxxxXX$$$$$$XXXXX$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxXXxxxx++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxx+;+;;++++++++++++xxxXXXX$$XXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXxxxXxxxXXX$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx++++;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxXXX$$$X$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxXXXXXxxxxxxxxxxxxxxxxxxxxx+++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxx+++++xx++++++++xxxxXXXXXXXXXXXXXX$$XXXXXXXXXXXX$$XXXXXXXXxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&$$XXXxxxx++++;;;;;;;;;;;+;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;++xxxxX$$$$X$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXxxxXXXxxxxxxxxxxxxxxxx++++;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;++++xxxxxxxxxx++++++xxxxxxxXXXXXXXXXXXX$$$$X$$XXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&&&$$$XXXxxx+++++;;;;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++;+xxxX$$$XX$$XXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXxx++++;;++;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxxXX$$XXXXXXXXXX$$X$$$XXXXXXXX$XXXXXXXXxxXXXXX$$X$$&$$$$$$$$$$$$$$$$$$$$$&&$&&&$&&&$$&&$&&&&&&$$XXxxxxx+++;+++++;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;++++;;;+xxxX$$XX$XXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXx++++;;+++;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;+++++xxxxxxxxxxxxxxxxxxxxxxX$$$XXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXX$XxxxXXXXXX$$$$&$$$$$$$$$$$$$$$$&&$$$&&&$$&&&$&&$$$&&&&&&&&&$$XXxxxx+++++++;;+++;++;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;+;+xXXX$X$X$$$XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxXx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxXXXxxxxxxxxxxxxxxxxXXXX$XXXXxxxxxXX$$$$$$$$X$XXXXxxXXxXX$XxxxxxxXXXX&&&$$$$$$$$$$$$$&$&&&&$&&&&&&&&&&&$$$&&&&&&&&&&&$&&&$XXxxxxxxx+;+++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;+xxXX$XXX$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXx+;+++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXxxxxxxxxxxxxx+xxxxX$$XXxxxxxxxXX$$$XXXXXXXXXXxxxxxX$$XxxxxxxxX$X$&&&$$$$$$$$&$$&&$&&&$$$&&&&&&&&&&&$$$&&&&&&&&&&&$$&&$$$XXXxxx+++x++++;;+;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;++++++;;+++xXXXXXX$$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxxXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++xxx+xXXXXXXXXxXxxxxxxXXXxXX$XXXxxxxxxxX$$$$$XXXXXXXXXXXXxX$XXxxxxxxxXX$$$$$&&$&&&&&&&&&&&$$$$$$$&&&&&&&&&&$$$&&&&&&&&&&&&&&$&$$$$XXXxxXXx++++++;;;+;;;;;;;;;;;;;;;;;++;;;;;;;;;++;+++++++++++xXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxx+xXXXXXxxXXxxxxxxXXxxxXXXXXXxxxxxxXXXXXXXXXXXXXXXxxxxX$$XXxxxxxXXX$$$$$$$$&&&&&&&&&&$$$$$$&&$&&&$$&&&$$$$&&&&&&$&&&$$$&&&&$$$$$$$XXXxxx++++++;;;;++;;;;;;;;;;;;;+;+;;;;;;;;;+;;+++++++++++xxXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXxxxXxxxXxxxxXXXXXXxxxxxxxXXXXXXXXXXXXXXxxxXX$XXXXxxxXX$$$$$$$$$$$$&&&&&&&&$$$$$$$&$&&&&&&&$$$$$&&&&&&&&&&&&$&&&&&&&&&$$$$Xxxxx+++++xx+;;;;;;++++;;;;;;;;+++;;;;;;;++;+++++++++++++xXXXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXxxXXX$XxxxxxxxxxXXXXXXXXXXxxxxxxxX$$XXXXxxX&$$$$$$$$$$$$&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&$$$$Xxxx++++xxx++;;;;++;;;;;;++;;;++;;;;;;;++;+++++++++++++xXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x++xxxXXXXXXXXXXXXXxxxXXX$$XxXXXxxxxxXXXXXXXXxxxxxxxxXX$XXXXx++x$&$$$$$&&&&&&$&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$$$$$&&&&&&&$$$$$$$Xxxx+xxx+++;;++++++++++++++;+++;;;;;;++;;++++++++++++xxXXXXXXXX$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++x+++xxxXXXXXXXXXXXxXXX$$$$XXXXXXxxxxxxXXXXXXXxxxxxxXX$XXXXXXx++x$$XXX$$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&$&&$&&&$$$$$&&&&&&&&$$$&$$xxxxxxxx+;;++++++++++++++++;++;;;;;;;+++++++++++++++xxXXXXXXXX$X$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXXXXXX$$$$$$$XXXXXxxxxxxxXXXXXXXxxxxxxX$$XXXXXXxxxxx$X$$$$$&&&&$&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$&&&&&&&&$$&&$&&&&&&&&$&&&&&$$$$Xxx++xxx+++++++++++++++++++++++;;;;;++++++++xxxx++++xxxXXXXXXXXX$$&$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx++xxxxXXXXXXXXXXX$$$$$$$XXXxxxxxxxxxxXXXXXXXxxxxxxX$XXXXXXXxxxxxX$$$&$$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&$&&$$$$$Xx++;+xxx+xxx+++;+++++++++++++;;;;;;+++++xx+xxx++++xxxxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;+xxxxxxxxxXXXXXXX$$$$$$$$XXXxxxxxxxxxxxXXXXXXXxxxxxxXXXXXXxxXXxxxxxX&&$$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&&&$$$$$&&&&&$$$$XXxx+++xxxxxxxx++++++++++++++++;;;;;++xxx+++xxx++++xxxxXXX$$$X$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xx+xxxxxxXXXX$$$$$$$$$XXXXxxxxxxxxxxxxXXXXXxxxxxxxxxXXXXXxxXXxxxxxX&&$$$&$$&&&$$$$$&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&$$&&$$&&&&&&&&&&&$$$$XXx++++x++++++++++++++++++++++;;;;;++xxxxx+xxx++++xxxxxXXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$XXX$$$$XXXXXXXXxxxxxxxxx$XXxxxxxxxXXxXXXXXXxxxXxxxxxx$$$$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&$$$&$&$$$Xx+++x+++++++++xx++x++++++++++;;;;;++xxxxxxxxx+++xx++xXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxXX$$$$$$$$XXXXXxxxxxxxxxxxxX$XXxxXxxXXXXXXXXxXXXxxxxxxxxxxX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&$$$$$$$$&&&$$XXxxxxx+++++++++xxxxx++x++++x+;;;;+++xxxx+xxxx++xxx++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+XX$$$$$$$$$$XXXxxxxxxxxxxxxXXXXxxXxxxXXXXXXXXxXXxxxXxxxxx+XX$$X$$X$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$&&&&&$$&&&&&&&&&&&&&$&&$$&$$$&&&&$X$Xx+xxxXXxx++++++++++++++++++;;;;;;+xxxxxxxxxx+x++++xxXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;+++;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxx+xX$$$$X$$$XXXXXxxxxxxxxxxxxXX$XXxXXXXXXXXXXXXxXXXXxxXXXxxxXX$$$$X$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&$$$&&&&$$XXXxxxXXxxxxx++++xxxxxx++++++;;;;;++xxxxxxxxxxxx+++++xXX$$$$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++;;+;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXXX$XXXxXxxxxxxxxxXXXXXXxXXXXxxXXxXXxxXXXxxxXXXxxxX$$$XXX$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$$$$$&&&$$&&&$&$XXXXxxxxxXxxxxxxxxxx++xx+++x+;;++;+xxxxxxxxxxxxx+++xxXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;;++;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxx+xXX$$$$$XXX$$XXXXXxxxxxx+xxXXXXXXxxXxxxxxxxxxXXXXXXXXXXXXxxXXXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&&$&&&$XXXXxx++xXxxxXXxXxx+xxxx++xx++;++xxxxxxxxxxxxxxx+xxXXX$$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxXXxxx++X$$$$XX$XXXXXXXXXxxxxxxxxXXXXXXXXxxxxXxxxXXxXxXXXxXXxxXXxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&$$$$$$$$$$$$&&&&&&&&$&&$$&&$$$$$$XXXXxx++xXXXxxxxxxxxxxxxx+x++;+++xxxxxxxxxxxxxxxxxxXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;;;+;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$X$XXXXXXXXXXx++xx+xX$$XXXXXxXXXXXXXXXXXXXXXXxXXxXXXXXXXXXXX$$$$$$$$$$$&$$$$$$$&&&&&&&&&&$&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&$$&&&&&$$$$XXXXXxxxXxxxxxxXXxxxxxxxx++++;++xxxxxxxxxxxxXxxxxXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;++;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;+xxxxxxxx+xX$$$$$XXXXXXXXXXx+++x+xX$$XXXXXXXXXX$$XXXXXXXXXXXXXXxXXXXXXXX$$X$$$X$$$$$$$$$$$&$&&&&&&&&&&&&$$&$&&&&&&$$$$$$$$$$$$&&&&&&&&&&$$&&&$$$$$$$$XXXXXXXXxxxXXxxXXXxxxxx+;;++++xxxxxxxxxxxxXxxxxXXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$$&&&&&&&&&$&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;++;+;;+;;++;;;;;;;;;;;;;;;;;;;;;+xxxxxxxxxxX$$$$XXXXXXXXXXxx+++++x$$$XXXXXXX$X$$XXXXXXXxxXXXXXXXXXXX$XXXXX$$XX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$&&&&&&&&&$$&&&$$&$$$$$$$XXXXXXXXXXxXXXXxxxxx++;++++xxxxxxxxxxxxxxXxxxXXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++;++;;;;;;;;++;;;;;;+;;;;;;;;;;;;;;;;;+;;;;;++xxxxxxxXXXX$XXXX$$XXXxxx+++++xX$$$XXXXXXX$$XXXXXXXxxxxxxXXXxXXXXXXXXX$$X$$$$X$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&$$&&&&&$$$$$$$$$XXXXXXXXXXXXxxxxxxx++++++;;+xXxxxXXxxxxxXXxxxXXX$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&$&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;;;;x++;++;+;;;;;;;;;;;;;;;;;+;;;+++;;+xxxxxxXXXXXXXXXXXxxxx++++++xX$$$XXXXXX$XXXXXXXXxxxxxxxXXXXXXXXX$XX$$X$$$$$X$$$$$$$$$$$$&&&&&&$$$$$$$&&&&&$$&&&&$$$$$$$$$$$$$&&&&&&&$$$&&&&$&&$$$$$$$$$$$XXXXXXXXXXXXXXx++++++x;+xXXXXXXxxxxxXXXxxXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+x++;;;++;;;;;;;;;;;;;+;;;+++;+++++++xxxxX$$XXXXXXXXx++++++++xxXXX$$$$$$$XXXXXXXXxxxxxxxxxXXXXXXX$XXXXX$$X$$XX$$$$$$$$$$$$$&&&&$$$$$$$&&&&&&$$&&&$$$$$$$$$$$$$$$$&&&&&&&$$&&&$$$$$$$$$$X$$$$$$XXXXXXXXXXXx++++++xx+xXXXXXXXXxxxXXXxxXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&&$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;+xx+;+++;;;++++++++;;+++;;;+++++++++++xXXXXXXXXXXXXXx++;+xx+xXXXX$$$$$$XXXXXXXxxxx++xx+xxxxX$XXXX$$$$XXXX$$XX$$$$$$$$$$$$&$$$$$$$$$$$&$$$$$$$&&$$$$$$$$$$$$$$$$$&&&&&&&$$&&&&$$$$$$$$$XXX$$$$$$$XXXXXXXX++++++++x+xXXXXxxxxxxXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&&$$&&&&&$$&&&&&$$&&$$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;+;;;;;++x++++;;;;++xxx+++++++++++++++++++++++xXXXXXXXXxxXx++++xxxxXXXXX$$$$XXXXXxxxxxx++++++++++xXXXXXXXX$$XXXX$$$$$$$$$$$$$$&$$$$$$&&$$$$$$$$$&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$XXXX$$$XXXX$$$$$$$$$$X$Xx++++++x+xxXXxXXXXXXXXxxxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++;;;;;;;+xx+++;;+;++++++;;++++++xxxx++;+++;;++xxxXXXXXXXXxx++++xxxXX$$$$$$XXXXXXxxxx++++++++++++xXXX$$X$$$$$$XXXX$$$$XX$$$$$$$$$$$$$$$$$$$$$$$&&$&&$$$$$$$$$$$$$$$$$$$$&&&&&&&$&&&&$$XXXXXXXX$$$$$$$$$$$$$$$$Xx++++++++xxXXxxxxxXXXXXXXXXXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&$$&&&&&$$$$$$$&&&&&&&&&&&&&$&&&$$&&$$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++;;++;;++x+++;+++++++++++++++++xxxxxx++;++++++xxXXXXXXxx+++++xxXXX$$$$XXXXXXXxxxx++++++++++++++XXXXX$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$&$$$$$$$$$$$$$&&&&$$$&&$$XXXXXXXXXX$$$$$$$$$$$$$$$Xx++++++++xXXXXxxXXXXXXXXXXXXXXXXX$$&&$&&$&&$$$&&&&&&&&&&&$$$&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxx+xx++++++;;;;;;;;;+;+x++++++++++++++++++xxxxxxx+xxx+;++++xxxXXXXxx++xxxxxxXX$$$$XXxxxXXxxxx++++++++++;;+++xxxXXXXX$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$XX$$$$$$$$$$$$$$$$$$$$&&&&$&&$$XXXXXXXXXXX$$$$$$$$$$$$$$$Xxx+++++xxxXXXXXXXXXXXXXXXXXXXXXXXX$&$&&$$$$$$$&&&&&&&&&&&&&&&&$$$$$&&&$$&&&&&&&&&&&&&&&&&&&$&&$&&&&&$&&$$&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxx++++++;;;++;;+;;++++++++++++++++++++++xxxxxxxxxxx++;;;+++xXxx++xxxxxxxxX$$$$XXxxxXXxxxx++++++++;;;;;+++xXXXX$XXXXX$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXXXXXXX$$$$$$$$X$$$$$$$$Xxx+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXX$&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xxx++xxxxxxxxxxxxxxxxx+++++++;;+;;;;+;;+++++++++++++++++++xx+xxx+++xxxxxx+++;;++++++xXxxxxxX$$$$XXXXxxxXxxxx+++++++;;;;;;;;+xxXXXX$XXXX$$$$$$XXx$$$$X$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&$XXXXXXX$$$$$$$XXX$$$$$$$$$Xx+xxxxxXxXXXXXXXXXX$XXXXXXXXXXXXXX$$$$&&&$$&&&&&&&&&&$$$$$$$&&&&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&$&&$&$&&&$&&$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+xxxxxx++++++++x+xxxxxxxxxxxxxxxx++++++;;;;;;;;;;+++++++++++++++++++++++x++++x+++xxxxx+++++xxxxxxxxX$XX$$$XXXxxxXxxxxx+++++++;;;;;;;;;+xxXXXXXX$XXXX$$$$XXX$$$XX$$$$$$$$$$$$$$$$$$$&&$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$XXXX$$$$$$$$$XXX$$$$X$$$$$XxxxxxxXXXXXXXXXX$$$XXXXXXXXXXXX$XX$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$&&&&&$&$&&&$$&&&&&$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+xxxxxx++xx+xx++xxxxxxxxxxxxxxxxxxx+++++;;;;++;;;;;;++++++++++++++++++++++xx+++xx+++++++++++xxxxxxXX$$X$$$$XXXXxxxxxxxx+++++++;;;;;;;;;++xxxXXXXXXXXXXX$$$$XX$$$$$XX$$$$$$$$$$$$$$$$$&$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$XXXX$$$$$$$X$$$$$$$X$$$$$XXxXXxXXXXXXX$$$$$$XXXXXXXXXXXXX$XXX$$$&&&&&&&&&&&&&&&&$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$&&&&$&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;+++++++++++++++++++++++++++++++++++++++xxxxXXXXXXX$$$XXXXxxxxxxx++++++;;+;;;;;;;;;+xXxxXXXXXXXXXXX$$$$$XX$$$$$$$X$XX$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$XXXX$$$$$$$$$$$$$$$$$$$$$XxxXXXXX$XX$$$$$XXXXXXXXXXXXXXX$$$X$$&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&$&&&&&$$&&&&&&&&&$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxx++++++;;;;;++;;;;;;;;+++++x+xxxxx+++++++++++++++x++++++xxXXXXXXXXXXXXXXXXxxxxxxxx++++++;;+;;;;;;;;;;+xXxxxXXXXXXXXXxX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$XXxXX$$$$$$$$$$$$$$$$$$XXxXXX$$$$$$$$$XXX$$XXXXXXXXXXXX$$$$$$&$$$&&&&&&&&&$$&&$&$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&$$$$$&$$&$$&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++++x+++xxxxxxxxxxxxxxxxxxxx++++++++;;;;;+++;;;;;;;;+;;+++++++++++++++++++++++++xxXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++;;;;;;;;;;;;;;+xxxxxXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$XXXXXXXXX$$$$$$$$$$$XXxxXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&$$$&&&&&&&&&&&&$$&&$$$$&$$$&&&&&&&$&&&&$&&&&&&&&&$&$&&$$$$&&&&$&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;+;;;;;;++++;++++++xxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++++;;;;;;;;;;;;;;::;xxxxxxXXXXXxxXxxxxXXXX$$XXXX$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$&$&&$$&&&&&&&&&$XXXXXXXXXXXXX$$$$XXxxxXX$$$$$$$$$$$$$$$XXXXXXX$$XX$$$$$$$$$$$$&$$&&&&&&&&&$$&$$$$$&&&$$$&&&&&&&&&&&$&&&&&&&&$$$&&&&&&&$$&$$&&&&&&&$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXx++xx+++++++++++++++xxxxxxxxxxxx+xxxxxx++xx++++++;;;;;;++;;;;+++++++++++++++xxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx++++++++;;;;;;;;;;;;;;;;+XxxxxxXXXXXXXXxXXXXXX$$$XXXXXXX$XXXXX$$$$$&$XXXXXX$$$$$$$$$$$$$X$$$$$$$&&&&&&&$&&&&&&&$XXXXXXXXXX$X$$$XXxxxxXXX$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&$$$$$$$&&&&&&&&$$&&$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX+x++++++++++++++++++xx+xxxxxx+xx+xxxxxxx++x++++++++++;;;;;;;;+++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxx++x+++;;;;;;;;;;;;;;;;;:;+XxxxXxXXXXXXXXXxXXXXXXX$$XXXXXXXXXXX$$$$$$$$XXXxXX$$$$$$$$$$$$XX$$$$$$$&&&&&&&&&&&&&&&&XxXXXXXXXX$$XXxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$&&&$$$$$$&&&&$$$$$$&&$$$$$&$&&$$&&&&&&&&&&&&$$$$&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX++++x++++++++++x++xxxx+xxxxxxxx+xx+xxxxxxx+++++++++++++++++;;;;;;;;++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxXxxx++++++;;;+;;;;;;;;;;;;;::;+XXxxxxxXXXXXxxXXXXXXXXXXXXXXXXXXXXXX$$$$$&$XXXXXXX$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&&&&xxXXXXXXXXXxxxXXXXXXXX$$$$$XXXXX$$$$$$XXXXXXXX$$$$$$$$&&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&&&&&$$$$$$$$&&&$$&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++xx++xx++xxxxxxxxxxxxxxxxxxx++++++++++++++;+++++;;;+++++++++++xx++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxx+++++++;;;;+;;;;;;;;;;;;:;;+XXXxxxxXXXXxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXXXXX$$$$$$$$$$$$$$XX$&$$$$$$&&&&&&&&&&&&&&&XxxXXXXXXx+xxxxXXXXXX$$$XXXX$$$$$$XXXXX$XXXXXX$$$$$$$$&&&&$&&&$$$&&&&&$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$&&$&&$$&&&&$$$$$X$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++x+++++xxxxxxxxxx++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxx+++++++++;;;;;;;;;;;;;;;;;;+xXXXxxxXXXxxxXxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXX$$$$$$$$$$$$$$XX$$$$&$$$&&&&&&&&&&&&&&&$XxxXXXXxxxxXXXXXXXX$$$$XXX$X$$$$$$$$XXXXXXX$$$$$$$$$&&&$$&&&&&&$$&&&&$&&&&$$$$$$$&$$&&&&&&&&&&&&&&&$&&$&&&&&&&$$$&&&&&&&&&&&&&&&&$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++xxxx++++++xxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxxxxxx+++x++;;;;;;;;;;;;;;;;:;::;xxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXXXXXXX$$$$XXXXXXXX$$$$$$$$$$$$XXXX$$$&&$$$$&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXX$$$XX$$$$$$$$$$$$XXXXXXXXX$$$$&&&&$$&&&$&&&&&&$$$&&&$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX++++x+++++xx++xxx+xxxxxxxxxxx++xxx+xxxx+++++++++++++++++++++++++++xxxx+++xxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$XXXXXxxxx+++++++++;;;;;;;;;;;;;;;;:;;;;xxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXX$$$$$$$$$$$$$$XXXX$$&&&&$$$&&&&&&&&&&&&&$$$$$$$$$$$$XXXXXXXXXXX$X$$$$$$$$XXXXXXXX$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&&$$$$&&&&&&$$$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX+x+xx++++++++++xxxxxxxx++++xxxxx++++xxxxx+xx++++++++++++++++;;++++;++++++++++++xxxxxxxxxxxxxxxxxxxXX$$$XXXXXXxxxxx+x+++++++;;;;;;;;;;;;;::;;:::;+XXXXxxXXxxxxXXXXXxxxxxXXXXXXXXXXXX$X$$$XXXXXXXX$$$$XXXXXXX$$XXXXXX$&&&&&&$$&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$XXXXXXXXX$$$$$$$$&&&&$&&&&&&&&&&&&&&&$&$$$$$$$$$$&&&&$$$$&&&&&&&&&&&&&$$&&&&&&&&$$&&$$$&&&&&&&&&&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxxxx+xxxx+++++++xxxxx++xx+x++x+++++++++++++++++++++++++;++;;++++++++++xxxxxxxxxxXXXXX$$XXXXXXXXxxxx++x+++++++;;;;;;;;;;;;;;;;;::::;+xXXXxxxxxxxXxxxXxXXXxXXXXXXXXXXX$$X$$$XXXXXXXX$$$$$XXXX$XXXXXXXXX$$&&&&&$$&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$$$$&$&&$$&&&&$$$$&&&&&&&&&&&&&&$&&&&&&$$$$$$&$$$&&&&&&&&&&&&$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx++++++++xxxxxxxx+xxxxxx+++xxxxxx++++x+++++xxxxxx++++++++++++++++xx++++++++++++++++++xxxXXXXXXXX$XXX$XXXXXXxxx+++x++++++;;;;;;;;;;;;;;;;;;;::;;;+xXXXxxXXXxxxxxxXXXxxXXXxxXXXXXXXX$$XXXXXXXXXXXX$XXXX$$X$$XXXXxXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$X$$$$XXXXXXXX$$$$$$$$$$$$$$&&$$&&&&&&$&&&&&&&&&&$$$$&$&$$$&&&&$$$$&&&$$$&&&&$$&$$&&&&&&$$&$$$&&&&&&$$&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xx+++++++xxxxxxxxxxxxxxx++x+xxxxx++++++x++++++++++x+++++++++++xxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXXXXXXXXXXXXXXxx++++xx++++++;;;;;;;;;;;;;;;;;;;;;:;;;+xXXxxXXXxXXXXxxXxxxXXXXXXXX$$XXX$XXXXXXXXX$$$$$$$XXXXXX$XXXXXXXXX$&&&&&&$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$&&&$&$$$$$&&&&&&&&&&$$&&&&$$$$&$$&$$&&&&&&&&&&&&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxx+++xxxxxxxxxxxxxxx++++++++++++++++++++++++++++xxx+++x++xxxxxxxxxxxxxxxXXXXXXXxXXXXXXXXXXXXXXxx++xxx++++++;;;;;;;;;;;;;;;;;::;;::;;;+xXXxxxXXXXXXXXXXXXXXXXXXXX$$XXX$XXXXXXXXXX$X$$$XX$$XXXXXXXxXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$XXXXXXxxXXXXX$$XX$$$$$$$XX$$$$$$&&$&&&&&&&&&&&&&&&$$$$&&&$$$&$&&$$$$$$&&$$&&&$&&&&&&&&&&$$$$$$$$$$$&$$$&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+x++xxx++xxxxx++x+xxxxxx+xxxxx+++x+++++++++++++++++++++++xxxx++x++xxxxxxxxxxxxXXxXXXXXXXXXXXXXXXXXXXXXxxx++++x++++++;;;;;;;;;;;;;;;;;;:;;;::;;;;+xxXxxxXxxxxxxXxxXXXXXXXXXX$$$$$XXXXXXXX$$$XX$$$XXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$XXXXxxxxXX$$$$$$$$XXXXX$$$$$$$$$&&&&&&&$&&&&&&&&&&$$$$$$&&&$&&&&&$&&$$$$$&&$$$&&$$$$&$&&&$$&&$$$$$&&&$&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++xxx++x+++++++++xxxxxxx++xxx++x++++++++++++++++++++++++++++++++++xxxx+xxxxxxxxxxxxxxxxXxXXXXXXXXXXXXXXXXXXx+++++++++++++;;;;;;;;;;;;;;:;;;:;;;;;;;;;;+xxxxxxxXXXxXXxXXXXXXXXX$$$$$$XXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXX$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXX$$$$$$$XXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&$$$$$$$$$$&&&&$$&$$$$$&&&&&&&&&$$&&$$$$$&&$&&&$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++x+++++xxxx+xxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXxx++++++++++++++;;;;:;;;;;;;;;;;;:;;:;;;;;;;;+xxxxXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$XX$$$$$$$$$$&&&&&&&&&&$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&$&&&$$$$$$&&&&&&$$&&&&&&$$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+x+++++++++++++++++++xxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXXXXXXXXxXXXXXXXxxxx+++++++++++;;;;;;:;;;;;;;;:;;;::;::;;;;;;;++xxxxxxxxxXxXXXXXXXXXXXXX$$$XXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXxX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXX$$$$$$&&&$&&&&&$&$&&&&&$&$$$&$$$$$$$$$$$$$&$&&$$$$$$&$$$$$&&$&&&&$$$$$&&$$$$&$$$$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXxxxx++++;+++++++;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;++xxxxxxXXXXxxXXXXXXXXXxX$$XXXXXXXXXXXX$XX$$XXXXXXXX$XXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$&$&&&&$&&&&&$$$$$$$&&$$$$$$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+++++++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxXXXXxXxxXXXXXXxxxx++++;;+++++++;;;;;:;;;;;;;:;;;;::;;;;;;;;::;++xxXxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XX$$$$X$$$&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&$$$$$&&&&&&&$$$$&$$$&$$&$$$$$$$$$$&&&$$$$$$$$$&$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx+++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxXXXXXXXxXXxxXXXXxxxxx+++++;;++++++;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;+xXXXXXxXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&$$$$&&&&$$&$&$$&&&&&$&&&&&&&&&&&&&&&$&&$&$$$&&$$$&&&$&&$$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxx+++xxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxXXxxxxXXXXXXxxxxx++++;;;+++++;;;;;;;;;;;;;;;;;;:::::;;;:;;;;;;;+xXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$XXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&$$$$$$&&&&$$$&$$$$&&&&$$$$&&&&&&&&&$&&&$&&&&$$$$$&&&&&&&&&&$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxXXXXxxXXXxxxx+++++;;;++++;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$$$&&&$$$&&$$$&$&$$&&&$$$$$&&&&&&&&&&&&&&$$&&$&&$&&&&&$$$&&&$$$$$$$$$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxxxX+++++++xxxxx++++xx+++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++++++xxx+xxx+xxxxxxxxxXXXxxxxx+++++;;;;++;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$$$$$$$$$$$$&&&&&&&$$$$&&&&&$$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&$$XXXXXXXXXXXXXXXXXXXXXXXXxxxXXXxXx+++++xx++++xxx+x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxx+x+xxxxxxxxxxXXXxxxx+++++;;;;;++;;;;;;;;;;;:;;;;;;;;:::;;;;;;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$X$$$XXXXX$$$$$$$$$$$$&&&&&&$&$$$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxxxxx++++x++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx++xxxxxxxxxxxxxxxxxXXxxxxx+++++;;;;;++;;;;;+;;;;;:;;;;;;;;;;;:::;;::;;;:;;;+xXXXXXXXXXXX$$XX$XXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&$$$$$XXXXX$$$$$$$$$$$$&&&&&&&&&$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXxxxxxx++++++;;;;;++;;;;;;;;;;;;;;;;::;;::::;::;::;;;:;;;;x$XXXXXXXXXX$$XX$$XXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXX$$$$$$$$$$$$$&&&&&&&$&&&$$$&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+++xxx+xxXxxxxxxxxx+++++;;;;;;++;;;;+;;;;;;;;;:;;;;::;::;;;;;;;;;;;;;;+XXXXXXXXXXXXX$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XX$$$X$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++x+xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++xxxxxxxxxxxxxxxxxx++;;;;;;;;++;;;;;;;;;;;;;;;;;::::::::;;;:;;;:;;;;;+xXXXXXXXXXXXXXXXX$$XXXXXXXXXXxXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXX$XX$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xx++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx+++++++++++++++++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;::::::::::;;:;;::;;;;;;xxXXXXXXXX$$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+xxx+++++++++++++++++++++++++++++++x+++++++++++++++++++++++++++xx++++++++++++++x++++xxxxxxxxxxxxxx++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;:;;:::::::;;;;::;;;;;;+xXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$XXXX$XXXX$XXXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$XXX$$$$$$$$$$$$$$&&&&&&$$$&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++++++++++++++++x+x+++++++++++x+++xx++++++++++++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxxx++++;;;;;;;;;;;+;;;;;;;;;:;;;;:;:::::;::;::;;;:::;;::;;;xxXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXX$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+x++++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxx+++;;;;;;;;::;;+;;;;;;;;::;;;;;::;;::::;;:::;;;:;:;;;;;;+xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&$$&&&&$$&&&$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&$&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+xxx+++++xx+++++++++++++++++++++++x+++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxx++++;;;;;;;;;:;+;;;;;;;;;;:;;;;;;;;;;::::;::;:;;::;;;;;;;;;xXxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$X$$$$$$$$$$$$$$$$&&&&&&&$$&$$&$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&$$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++xxx++++++++++++++x++++++++++x+x+++++xx+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxx+++++++;;;;;;;:;;;;;;;;;;;;;;:;;;;;;::;:::;;:::;:;;;:;;;;;;;;;+xXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXX$XX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$$&&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++xx+xxx+x++++++++++++xxxxxx+++xx++xx+++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxx++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;::;;;:;::::::::;::;;;;;;;;;+xXXxxXXXXXXXXX$$XXXXXXXXXXXXXXX$$$XXX$XXXXX$X$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&$$$$&&$$&&&&$$&&$$$&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++++++++xxx++x+++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++xxx++++++++++;;;;;;:;::;;;;;;;;;;;;;;;;;;;::::::;:;;;:;::;;:;;;;;;;;;;+xxXXXXxXXXXXX$$XXXXXXXXXXXXXXXXX$$X$$$$$$XXX$$XXXXXXX&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$&&$$$$$&&&$&$$$$$&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++++++++xxx+++++++x++xxx+xx++++++xxx+++++++++++++++++++++++++++++++++++++++++++++xxx++++++++;;;;;;;;;;:;;;;;;;;;;;;;:;;;;;;:::;;;;;;;;:;::;;:;;;;;;;;;;;;xxXxxXxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$$$XX$$XXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&$$$&&$&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$&&&&&&$$$$&&&&&$&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++xx+xxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++xx+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;:::::;;;;;;;;;;;;;;;;+xxxXXXXXX$$$XXXXXXXXXXXXXXXX$$$X$$X$$$$X$$XX$$XXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$$$&$&&&$&&&&&&&&&&$$$&&&$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXX++++++++++++++++++++++++++++++xx+xxxxxxxxx+++++x+++++++++++++++++++++++++++++++++++++++++xx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::;::::::::;::;;;;;;;;;;;;;;;;+xxxxXXXX$$$XXXXXXXXXXXXXXXXXXX$$XXXX$X$$XXXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&$$$$X$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$&&&&$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&$$$$$$&$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::;;:;;;;;:;;;:;;;;;;;;;;;+;;;;;+xxXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$XX$$XXXXXXXXXX&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&$$&$&&&&&&&&&&$$&&&$$$$$$&&$$$$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxXXXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;:;;;:::;:;;;;;;;;;;;;;+;;;;;;++xxxX$$$XXXXXXXXXXXXXXX$XX$$XX$$XXXXXXXXXXXXX$&&&&&&&&&&$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&$&&&$$&&&$$&&&$$&&&&&&&&&&&&&&&&$$&&&&&&&&$$$$&$$$&&&&&&&&&&$$$$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;:;;;;;;;;;;;;;;;;;++;;;;;;+++xX$$XXXXXXXXXXXXXXXXXX$$$$$X$$XXX$$XXXXXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$&&&$$$$$$$&$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;::::;;:;;:;;;;;;;;;+;;;;;;;;;+xX$XXXXXXXXXXXXXXXXX$X$$X$$$XXX$X$$$XXXXXX$&&&&&$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&$&&&&&$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++++++++++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;:;:::;;:;;;:;;;;;;;;;;;;;;;;;+;;x$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$XXXXXX$&&&$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&&&$$$$XXXXXXXXXXXXXXXXXXXXXxxxxxXxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;:::;;;;;;;;;;;;;;;;++;;;;;;;;;+$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$X$$$$$XXXXX$&&&&&&&&&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$&&$$$$$$XXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;::;;;;;;::;;;;;;;;;;;+++;;;;;;;;;x$XXXXXXXXXXXXXXX$XXXXXXXX$$X$XXX$$$$XXXX$$&&$&&&&&&&&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&$$&&&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$XXXXXXXXXXXXXXXXXXXxxxXXXXxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++++;;+;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;:::;;:;;;;;;;;;;;;;+++;;;;;;;;+XXX$$XXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$XXX$&&$$&&&&&$$&$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&&&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxxxxxxxxxxxXxx++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;::;;;;;;;;;:;;;;;;;;;+++;;;;;;+;+XXXXXX$X$XXXXXXXXX$XXXX$$$$$XXXXXX$X$XXX$&&$&&$$&&$$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$&&$$&$$$XXXXXXXXXXXXXXXXXXxXXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++++++;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::;;;;;:;;;:;;;;;;:;;;;;;;;;++;;;;;;;;;+XXXXXXXXXXXXXXXXXXXXXX$$XX$$X$XXXXXXXXXX$&&&$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$$$XXXXXXXXXXXXXXXXXXXXXxxXXXXxXXxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x++;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;:;;;;;;;;;;;;;;;;;;;++++;;;;;;;;+XXXXX$$$XXXXXXXXXXXXXXXX$$$$$$XXXXXXXXX$$&&&&&$$$&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&$$$$$$XXXXXXXXXXXXXXxxxXXXXXXXXXXXxxxxx++++++++++++++++++++++++++++x++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;xXXXXXX$$XXXXXXXXXXXXXXXX$$$$$$$XX$XX$XX$$&$&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$$$$$$$$&&&&&&&&&&&&$$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$XXXXXXXXXXXXXXXxXXXXXXXXXxxxxxxxxx+++++++++++++xxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;+xXXXXXX$$$XXXXXXXXXXXXXX$X$$XXX$XX$XXX$$$$&&&&&&&&&$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$$XXXXXXXXXXXXXXXxXXXxxxXXxxxxxXXXXX+++++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXX$$$$$$XXXXXXXXXXXXX$$$X$$XX$$$$XX$$X$$&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&$$$XXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXxX++++++++++++++++++++++x++++xx++++++++++++++++++++++++++++++++++++++++++++++;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;:::;::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+x$XX$$$X$XXXXXXXXXXXXXXXXXX$XX$XX$$XX$$$$$&&$&&&&&&&&$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;++++;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;+xXXXX$$$$$XXXXXXXXXXXXXX$$$$XX$XX$$X$XXXX$&&&$&&&$&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;+xXXXXX$$XXX$$$XXXXXXXXX$XX$$$$$$XX$$$XXX$$&&&&&&$$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;:::;::;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;+xXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$XXXXX$$XX$&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++xxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;++x++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;:;;++;;;;::;::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;++XXXXX$$$$XXXXXXXXXXXXXX$$$$$$X$$$$$$X$$X$$&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$XXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;+;;;;;:::::;;;;;;;;;;;;::;;;;;;;;;+++++;;;;;;+xXXXXXXX$$XXXX$$XXXXXXXXXXXX$$$$$$$$$XXXX$$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&$$XXXXxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX++++++++++++xxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;;;+++;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;:;;+;;;;;::::;;;;;;;;;;;;;:;;;;;;;;+++++;;;;;;;+xXXXXX$$$$XXXX$XXXXXXXX$XX$$$$$$$$$$$$XXXX$&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$XXXXxxxxxxxxxxxxxxxXXXxXXXXXXXXXXXXXXX+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++++;;+++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;:::::;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;+xXXXXX$$X$$XX$X$XXXXX$$$$$XXXXXXX$XX$$$XXX$&&&&&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$XXXXxxxxxxxxxxxxXXXxxXxxXXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;;;;;;;++;;:::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;+XXXXX$$$$$XXX$$$$$XXX$$XX$$$$$$$X$$$$$$X$$&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$XXXXxxxxxxxxxxxxxxXxxxxXXXxxxXXXXXXXXXXX+++x+++++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXXX$$$$$$$$$$$$$XXXXXX$$XXX$$$$$$$$$X$$&&&$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++xx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;++;;;::::::;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;xXXXXX$$$$$$$$$$$$$$$$$$$X$$XXXX$$$X$$$XX$$&&&$$&&$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&$$XXXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;:;;;;;;;;;;;;;;;;+;;;;;:;:::;;;;;;;;;;;;;;;;;;;++++x++++;;;;+xXXXXXXX$$$$$$$$XX$XXXXXX$XXXXXX$$XXX$X$$$$&&&&$$&&$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&$$XXXxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;:;;;::;;;;;;;;;;;;;;;;;;;;++++++++;;;;+xXXXXX$$X$$$$X$$XX$$X$$$$$XXXXXXX$$XX$$$XX$&&&$$$&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&$$$&&$$XXXXXxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;:;;;;;:;;;;;;;;;;;;;;;++;;;;;:::;;:;;;;;;;;;;;;;;;;;;+++x++++;;;;;xXXXXXXX$$$$$$$$$$$$X$$$$$X$XXXXXXXXX$$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$XXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:;;;;;;;;::;;;;;;;;;;;;;+;;;;:;:::::;;;;;;;;;;;;;;;;;;;+++xxx+++;;;;+X$XXXXXX$$XX$$X$$XX$$$$XXXXXXX$$$$$$$X$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&$$$$$$XXXXXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:;:::;;;;::;;;;;;;;;;;;;;;+;;:::::;:;;;;;;;;;;;;;;;;;;;+++xx++++;+;;+X$XXXXXXX$$$$$$$$$XXXXXXXXX$$XXXX$$$$XX$$&&$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::;;;::;;;;;;;;;;;;;;;;+;::::;;;;;;;;;;;;;;;;++;;;;++++xx+++;;+++X$XXXXXXXXXXX$$$$$$XXXXXXXX$$XXX$XXX$$X$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$XXXXxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;:;;;;:;;::;;;;;;;;;;++;;;;++++xx++++++++xXXXXXXXXXX$X$$$$$$X$$X$$XXXXXXX$$$$XXX$&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;++;:::;:::;::;;;;;;;;;;;+++;;+++xxx++++++++xXXxXXXXXXXXX$$$$$$X$$X$XXXXXXXX$$$$$X$$&$$&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxx+xx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;::;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;::::;;;;;;;;;;++++;;;++xxxx++++++++XXXXXXXXXXXXXX$$$$X$$$XXXXXXXX$$$X$$$$&&$&&$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&&$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++x++++++++++++++++++++++++++++++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;++;;;;+;::;;;;;;;;:::;;;;;+++++;;;++xxxxxxx+++++xXXXxXxXXXXXXX$XX$XXXX$$XXXX$$$$$XXX$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&&&$&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;::::;;:;;;;;;;;;;;;;;;;;+;;;;;;;;;;;:::::::;;;+;;;++++;;+++xxxx++x++++++xXXXxxXXXXXXX$$$$X$$XX$$$$$$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;;;;;;;;;;;+;;;;;;;::;;::;;::;;;;+;;++++++;+++xxx++xx++++++xxXxxXXXXXXXX$$$XX$$XXXX$$$$$$$$$$$$&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&$$&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;++;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::;;;;;;;;;;;;;;;;++;;;;;;:;;;;:;;;;;;;;;;;++++++;+++xxxx+xx+++++++xXXXXXXXXXXXX$$XX$$XX$X$X$$$$$$$$&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$&&&&&&&&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;:;;:::;;;;;;;;;;++++;;;+++xxxxxxx+++++++xxXXXXXXXXXX$$$XXXXXX$$$X$$$$$$$&&$&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$$&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;+;;;;;;:;;;::;;;;;;;;+;+++;;+++++xxxxxxxx+++++++xxXXXXXX$$$$$$XXXXXX$$$$$$XX$$$&&$&&&$&$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$$$&&$$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;:::;;;;;;;+;;+++;+++++xxxxxxxx+++++++xxxXXXXX$$X$$$XXXXX$$$$$$$$$$$$$$$$$$$&$$$&&$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxx+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;::;;::;;;;;;;;;;;;;;;;;:::;:;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;;;;++;+++++xxxxxxxx++++++++xxXXXXXXXX$$$XX$XX$$$$$$$$$$$&$$$$$$$$$&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxx++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;::;;;;;;;;+;+++;+++++xxxxxxxx++++++++xxxXXXXX$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$&&&$$&&$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&$$&$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxXxxxx+++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;:;;;:;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;+;;++++++++xxxxxxxx++++++++xxxxXXX$$$$$$XX$$$$$$$$$$$&&&$$$$&$$$$&&&$$&&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&$$$&$&&&&&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;++++++;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;:;;;;;;:;;;;:;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+++++++;++xxxxxxxxxx++++++xx++xXXXX$$$$$XX$$$$$$$$X$&$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$$$$$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;++;;;++++xxxxxxxxx+++++++++xXXXX$$$$$$X$$$$$$$$$$&&$$$$$$$$$&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$$&&&&&&&&&&&$&$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;+++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;::;:;;;;;;;;::;;:;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;+;;;++++++++xXxxxxxxx++++++++++xxxX$$$$$$$$$$$$$X$$&&$$$$$&&$$$$$$$$$&&&$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&$&&&&$$&$$$$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++;+++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;;;;;;;;;;;++++;;;;+++xxxxxxxxxx++++x+++++xxXXX$$$$$$$$$$$$$$&$$$$&&&&&$$$&&&&$&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$$&$&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxx+++++++++++++++++++++++++++++++++++++;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;::;;::;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;+;;;;+;++;;;;;;;;;;;;;;;+;;;;;;+++xxxxxxxxxxxx++++x++++xxX$$$$$$$$$$$$$$&&&$&$$$$$&&&&$$&&&&&$$$$$&$$$$$$$$$&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&$&&&&&&&&&&&&&&&$&&&&$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXxxxXXxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;::;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;++++++;;;;;;;;;;;;;;+;;;;;;+++xxxXxxxxxxx+++xx++x++xxxX$$$$X$$$$X$X$$$&&&$&&&&&$&&&$$&&&&&&&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++;;+++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;:::;;;;;;:::;;;;:;;;;::;::;;;;;;;;;;;++++;;+;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++++++++++xXX$$$XX$$$X$X$&$&&$$$$&&&&$$&$$&&&&&&&&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&&&&&&$$$$&$$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;++++xxXXxxxxxx++++xxx+++++xxXX$$$$$$$$$X$&&$&&$$$&&$$&&&&$&&&&&&&&&&&$$$$$$$$$$&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++;+;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;:::;;;;;;;;;;;;;;:;;;;:;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxxxx++x+++++++xxxXX$$$$$$$$$$&&$&&$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxxxxx++++++++++++xxX$$$$$$$$$$&&&&$$$$$$&&&$&&$$&&$$$$$$&&&$$$$$$$&$$$$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXxX++++++x+++++++++++++++++++++++++++;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;:;;;;;::;;;;:;;:;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxXXxxxxxxxx++xx+++++++xxX$$$$$$$$$&&&&$$$$$$$&&$$$$$$$&$&&&&&&&&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXX++++++++++++++++++++++++++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;:;;;;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxXXXxxxxxxx++xxx+++++++xxX$X$$$$$$&&&&$&$$$$&&&$&&$&$$$$$$$$$$&&$$&$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxxxXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++x+++++++++++++++++++++++++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;:;;;:;;:;;;:;;;;;;;;;;;;;;;;;;;;;+;;;;;++;;;;;;;;;;;;;;;;;;;;;+++++++xxXXxxxxxxx++++x++++++x++xxXXXX$$$$&&&&&&$$$$&&$$$&$&&$$$$$$$&&&&&$$$$$&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXxxXXXXXxxXXXxxxxxxxxxxxxxxxXXxxxxxXxxxxXxxXXXx++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::::;;;;;:;;;;;;;::;;;::;;;;;;;;;;;;;;;;;;;;+;;++;++;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxx+++x+x++++++++xXXX$$$$$&&&&$$$$$$$&$$$&$$$$&&$$$&&$&&&$$$$$$$$&$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXxxxxXXXXXXXXXxxxxxxxxxxxxxxxxXxxxxxxXxxxXXXXXXXx++++x++++++++++++++++++++++;+++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;::;::;;;:::;:;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxx+xxx+++++++++xxxXX$$$$&&&&$$$$$$&$$$$&$$$$$&&$$$$$$$$$$$$$$$$$&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$XXXXXXXXxxxXXXXXXXXxxxxxxxxxxxxXXxxXXxxxxxxXxXXXXX++++++++x++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;+;;;;+;;++;;;;;;;;;;;;;;;;;;++++++++xxXXXXxxxxxxxxxxx++++++++++xxxXX$$$$&&&$$$$$$&$$$$$$&$$$&&$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxXXXxXXXxXXXXXXxxxxxxxxxxxxXXxxXXXxXxxxxxxXXXX+++++++++++++++++++++++;+;;+++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;:::::;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;+;++++++xxxxxxxxxxxxxxx+xx+++++++++xxxxXX$$&&&&$$$$$$&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$&&&$$&&&&&&$&&&&&&&&&$$&&$$$$XXXXXXxXXxxxXXXXXxxxxxxxxxxxxxxxxxxXxxxXXxxxxxXXxXXX++++++++++++++++++++++++;;++++++++++++;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:::;:;:::;:;;::;;;;;;;;;;;;;;;:::;;;;;;:;;;:;;;;;;;++;;++;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxXxxxxxxxxxxxx++++++++++xxxxX$$$&&&$$$$$$$&$$$$$$$$$&$$&&&$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&$&&&&&&$&&$$&&$$$XXXXXxXXXxxXxxxxxxxxxxxxxxxxxxxxxXXXXXxxXXxxxxxxxXXXX+++++++++++++++++++++;++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::;::;;;:;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;+++;+;;++;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxxxxxxxxxxx++++++++++x+xxXX$$$&$$$$$$$$&$$$$$$$$$&$$$$$$$$$$$$&&$$&&$$$$$$&$$$&&&&$$$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$&&&&&&&&&&&&&&&&$&&$&&$&&$$$XXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxXXxxXXX++++++++++++++;;+;;;;+++++++++++++;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;::::::;;::;;;;;;;;;;;;+;;+;;+;;;;;;;;;;;;;;;;;;;;++++++++xxxXxxxxxxxxxxxxx++++++++++xxxxXX$$&$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$$$$$XXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;:;;;::;;;;;;;;;;;;;;;;::;;:;;;;;;;;;;;;;;;++;;;+++;;;;;;;;;;;;;;;;;;;;;+++++++xxxXXxxxxxxxxxxxxx++++++++++xxxXX$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&$$$&$$&$$$$$XXXXXXxXxxXxxxxxxxxxxxxXxxxxxxxxxxxXXXXXXXXXXXXXXXXXX++++++++++++++;;;;++++++++++;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;::::;;;;;;;;:;;;;;;;;;;;;;;;::::::;;;::;;;;;;;;;;++++++;;;+;;;;;;;;;;;;;;;;++++++x++xxxxxxxxxxxxxxxxxx+++++++++++xxXX$$$$$$$&$$$$$$&&&$$$$$$&$$$$$$$$$$$$$$$$$$&&$$$$&$$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$XXXXXxXxxxxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX+++++++++++;+++;+;+++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxxxxxxxxx++++++++++xxx$$$$$$&&$$$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&$&&&&$$$$XXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX++++++++++++;++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;::::::::;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXxxxxxxxxxx+++++++++xxx$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&$$$$$$$$&&&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXxxxxxxxxXxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;:::;;;:::::;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;+++;;++;;;;;;;;:;;;;;;;;;;;+++++xx++xxxxxxxxxXXXxxxxxxx++x++++++++xxX$$$$$$$$$$$$$$$$$&&$$$$&$$$$$$$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$&$$XxXXXXXXxxxxxxxxxxXxxxxxxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++;+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++;++++;;;;;;:;;;;;;;;;;;++++++x++xxxxxxxxxXXxxxxxxx++xx++xx+++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$&&&$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXxxXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;+++;+++;;;;;;;;;;;;;;;;;;;;++++xx++xxxxxxxxXXXxxxxxxxxxxxx+++++++++xX$$$$$$$$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$&$&&$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXxxxxxXxxxxxxxXxxxxxxxxxxxxxxxxxXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;:;;;;;;;;;;;+++xxx++xxxxxxxxXxXxxxxxxxxxx+++++++++++xXX$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$&$$&$$&&&$$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&&$&&&$$$$XXXXxxxXxxxxxxxxxxxxxxxxXxxxxxxxxxxxxXxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+;++;;;;;;:;;;;;;;;;;;+++++x+++xxxxxxXXXXXxxxxxxxxx++xxx++++++xxXX$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$&&$$$$$&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$&$$&&&&&$XXxxxxxxxxXXxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;+++;;++;;;;;;;;;;;;;;;;+++++++++xxxxxXXXXXXxxxxxxxxxxxxxxx+x+++xxXXX$$$$$$$$$$$$$$$$$&$$$$$&$$$$&$$$$$$$&&&&$$&&&&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&&&&&&$XXxxxxxXxxxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;::::::::::;;:;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;;;;;;;;;;;;;;+++++++++xxxxxxXxxXXxxxxxxxxxxxxxxxxx++x+xXXXX$$$$$$$$$$$$$$$$$$$$$$&&$$$&&&$$$$$$$$&$$$&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$XXxXxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXX++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++;++;;;;;;;;;;;;;+++++++++xxxXXXXXXXXxxxxxxxxxxxxxxx+x++x+xxXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$$XXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;;;:;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;+++;;;;;;;;;;;;;;;;++++xx+++xxxXXXXXXXXXxxxxxxxxxxxxxxxx+xx+xxxXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&$&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXX+++++++++++++++++++++++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::;;;;;;;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;++;+;;;;;;;;;;;;;;;;++++x+++++xxXXxxXXXXXxxxXxxxxxxxxxxxxxxxx+xxxxXXX$XX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxx+++++++++++++++++++++++++;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++++;+++++;;;;;;;;;;;;;;;;+++++xx+++xxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXX$$X$$$$$$$$$$$&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$&$$$&&$&&&&&&&&&&$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxX+++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::;:::;;;;:;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;++;+;++;;;;;;;;;;;;;;;;;;;+++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++xxxxXX$X$$$$$$$$$$$$$&$$$&&&$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$&&$$&&&&&&&&&&&&&&$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::;;:::::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;;;;;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx++xx+xxxxxXXXXXX$$$$$$$$$$$$$&&&&&&&&&$$&&&&&&&&&&&$$&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$&&&&&&&&$&&&&&&$$$XxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXX++++++++++++++++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+;;++;+;;;;;;;;::;;;;;++++x++x++xxxXXXXXXXXXXXxxxxxxxxxxxxxxxxx+xxxx+xxxxxXXX$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$&&&&&&&&&&&&&$$$&&&&&$&&&$&&&&&&&&&&&&&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;;;;;;;;;;;;:;;;;;++++xx+++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx++++xxxxxXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$&$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXX+++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;:::::::;::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++;+;;;;;;;;;;;;;;;;;++++x++++xxxXXXXXXXXXXxxxxxxxxxxxxxxxxxx+xxxxxx++x++++xxXX$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;;;;;++++xxx+++xxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++x++++++xxxXXXXX$$$$$$$$$$$$$$$$$$$$$&&&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&$&&&$&$$$$$$$XXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;::::;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++;;++;;;;;;;;:;;;;++++xxx++xxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xXXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&$&&&&&&&&$$&$&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxXxxxxx++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;:::;;;::::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++;;;;;;;;;;;;;;;;+++xxx+++xxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxXXXXX$$$$$$$$$$$&$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&$$$$$$$$$$$$$XXXXXXxxxxxxxxxxXxxxxxxxxxxx+++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;::;;;;;::::;;::;:;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxx+xxxxxxXXXXXXXXXXXXxxxxxxxXxxXxxxxxxxxxxxxx++++++++++++xX$XX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&&$&&&&&&&&&&&&&&&&&$&&&$&$$$$$$&&$$$$$$&&$$$&$$$$$$$XxxxxxXxxxxXxxxxxxxxxxx++++++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;:::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;+;;;;;;;;;;;;;;;;;++++xxx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxx+x++++++++++++++xXXX$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$&&&&&&&$&&&$$&&$$&&&$$$$$$$$$$$$$$$XXXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;::;;;;;;::::;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++xx+xxxxxxXXXXXXXXXXXXxxxxxxxxxxxXxxxxxxxxxxxx+++++++++++++++xXXXXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXxxxxxxxxxxxxxxxxx+++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::::::::::;:;;:;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxXXxxxxxxxxxxx++++++++++++++++xxXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&$&&&&&$$$$$$&&&&$$$$$$$XXxxxxxxxxxxxxxxxxx++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;::;;;:::;;:::::::::;::;:;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx++++++++++++++++++xxXXXXX$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&$$&&&&$$$&$$$&&$$&$$$$$$$$&&&$&&&&&&&&$$$XXXXXXXXXXXX$$XXX++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::::;;;::::;:::;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++xx++xxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++xx++++++++++++++xXXXXXX$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$&$&&&$$&&&&&&&&&&&$&&$$$$$$$$$$$$$XXXX$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;::;;;;;;;::;::::::::::::;::;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++xxXXX$$XXX$$$$$$$$$$$$$$$&&&&&&&&$&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$&$$$$&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$&&&&$&&$&&&&&&&&$$$$$$$$$$$$$$$$XX$$$$+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;;::::::::::;;::;;;:::::;;;;:::::::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxx++xx+xx++++++++++++xxXX$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&$$&&&&$$&&&&&&&&&$$$$&$$&&$&$$$$$$$$$$$$$$$$++++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;:::::::;;;;;::;;;;;;:;:;;::;:::::::::::::;;:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxXxxxxxxxxxxxxxxxxxxx++++++++++++++x+xxxxxXXX$$X$$$$$$$$X$$$$$$$$&$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&$$$$$$$$$$$&&$$$$&&&$$&$$$$$XXXXX$$$$$$++++++++++++++++++;;;++;;;;;;;;;;;;;;;;;;;;:::::;;;::::::::::::::;:::::::::::::::;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx+xxx++++++++++++xxxxxxxxxXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;::;:::::::::::::::::::::;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;++xxxxxxxxxxXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxxxxx++xx+++++++++++xxxxxxxxxxXXXXXXXX$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&$$&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$+++++++++++++++++;;++;;;;;;;;;;;;;;;;;;;::::::::::;;;::::::::::::::;;:::::::::;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++++++xxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$&&&&&&&&&$&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;:;;;;;:::::::::;;:::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXxxXXXxxxxxxxxxxxxxxxxx+++xx+++x+x++++xxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&$&&&&&&$&&&&&&&&&&&&$&&&$$$$&&&$$&&&$&&&$$&$$$$$$$$$$$$$$$$$$$$$$$X++++++++++++++++;;+;;;;;;;;;;;;;;;::::;:::::;;::;;::::;;;::::;;:::::;:;;;;::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;++++x++xxxxxxxXXXXXXXXXXXXXXXXxXxxXXXxxxxxxxxxxxxxxxxxxxxxxx+x++++xxxxxxxxxxxxxxxxxXXXXXxXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$XX$$$$$$$XXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;:::::::;;:::;;;::::::::::::::::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxxxx+++x++xxxx++xxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXx$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$$$&$$$$$$$$$$$$$$$$&$$$$$$$$$$XX$$XXX$$$$$X$$$$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;::::::;;:;;::::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxx++x+x+xxxxxxxxxxxxxxxXXXxxxxXXXXXXXXXXxxXXX$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$&&$&$$$$$$&&$$$$$$XxXXXXXXXXXXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;++;;;;;;;;;;;;;;;;;;:::;;:;:::;;:::;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxXXXXXXXXXXxxxXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$XxxxxxxXXxxXXxXXXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;:::;:::::;:;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$&&&&&&&&&$$$&&$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;:::;;;;::;;;:::;::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&$&&&&$$$$$$$&$$$$$$XXXXxxxxx+xxxxxxxxXXXXXXXXXXXXXXXX$$$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;:::::;:::::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&$&$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;::::;:::;:::::::::;::::;;;;:;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&&&&&&&$&$$$&&$$$$$$$$XXXxxx+++xxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$&$$$$XXXxx+++++xx+xxx+xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;::::;::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$&&&&$$$$$Xxxxxx+xx++xxxxxx+x++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXX$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;::::::::::::::::::::;;::;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$XXXXXXx+xxxxxxxxxxxxxxxxxxxx+++xxxxxXxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$X+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;:;;;:::;;:::::::::::::::::::;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXxxxXXXXXXXXxx++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxXxxxxxxxxxxxxxxxxxxxxxxx+xxxxxxXxxxXXXXxxxxxxxxxXxxxxxXXXXXXXXXXXXXXXX$++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;::;;;:;;;;:::::::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxXXXXXxxxXXXXXXXXXx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::::::::::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXxx+++xXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxxxxxXXXxxxxxxx++++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+++++X$X$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;::;::::::;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXxxXXXxxxXXXXXXXXXxxx++xxXXXXX$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$XxXxxxXXxXxxxxxxx+++++++++xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+xX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;::;:::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXXXXXXXXXxxx+++xXXXX$$$$$$$$$$$XXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXXxxXxxXXXxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xxX$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::::::;:::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXxxxx+++xXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$XxXXXxxxxXxxxxxxxxxxxxXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:::::;:::;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxXXXXXXXXXxxxxx++xxXXXX$$$$$$$$$$XXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$XXXXXXXXXXxxxxxxxxxxxxXXXXXXxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++X$$$+++++++++++++++++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXxxXxXXXXXXXXXXXXXXxxx+++xXXXXX$$$$$$$$$XXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXxxxxxxxxxxxxxxxxxxxXXXXxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX$$X++++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;:::;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXxXXXXXXXXXXXxxxxx+++xXXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxx++++xXX$++++++++++++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxx++xxxXXXX$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$XXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxx+xxxxXX$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$$XXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXX$++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxXXXxxXXXXXXXXXXXXxxxx++xxxXXX$$$$$$$$$XXXXX$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXxxXXXXXXXxxxxxxxxxxxxxxxxxxxX$$$++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxXXXXXXXXXXXXXXXxxxxxx+xxxxXXX$$$$$$$$$XXXXX$$$$$X$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$&$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxXxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxxxxxX$$$+++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$XX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXxXXXXX$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxxxxx++xxxxXXX$$$$$$$$$XXXX$$$$$X$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$&&$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXXXxxxxXXXXxxxxxXXXXXxxxxxxxxxxxxxxXXX$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxx+++xxxXX$$$$$$$$$$XXXXX$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxXXXX++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXxxxxxxxxxxxxxxXXXxxXXXXXXXXXXxxxx++++++xxxXX$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXXXXXXXXXXXXXxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxX$$$++++++++++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXxxxxxxxxxxxxxxXXXXXXXXXXXXXXXxxx++x++++xxxXX$$$$$$$X$$$XXX$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXxxXXXXXXXXXXXXXxxx+++++++xxxxXX$$$$$$$$$$$XX$$$$$$X$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;:;;;;;;;;;;;+;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxXXxxxXXXXXXXXXXXxxxx++x++++xxxxXX$$$$$$$$$$XX$$$$$$XXX$$$$$$&&&&&&&&&&&&&&&&&&&$$$&&&$$$&&&&$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$$++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxx++++++xxxxXX$$$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&$&&&$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$+++++++++++;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;:;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxXXXxxXXXXXXXXXXXXXXXXXxxxx++++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$$&&&&&&&&&&&&&$$$&&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxxxxXXXXXXXXXXXXXXXXXxxxxx+++++++xxxxXXX$$$$$$$$$$$$$$$$XX$X$$$$$$&&&&&&&&&&&&&&$$$&&&&&&&&&&&&$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;:;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxXXXXX$$$$$$$$$$$$$$$XXXXX$$$$$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&$$$$$$$$$$$$$$$+++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXxxXxXXXXXXXXXXXXXXXXXXxxxxx++++++xxxxXXXXX$$$$$$$$$$$$$$$$X$X$$$$$$&&&&&&&&&&&&&&&$$&&&&&&&&&&$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$&&&&$$$$$$$$$$$$$$$$$$$+++++x+++++++;+;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXxXXXXXXXXXXXXXXXXXXxxxx+++++++xxxxxXXXX$$$$$$$$$$$$$$$$XXX$X$$$$&&&&&&&&&&&$&&&$&&&&&&&&&&&$$$$$$$$$$$X$$$XXX$$XXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$$$$$$$$+++++++x+++;+++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXXXxxxxx+++++++xxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&&$$&$$&&&$&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$&&&$&&&$$$&&&$$$$$$++xxxx+xx+++;;;;;;;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;++++x+xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx+++x++xxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$&&&&&&$$&&$&&&&&&&$$&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXX$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&$$$$$$$$$$$$$+++++++XXx++;;+;;;;+++++;;;;+;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXXXXXXXXxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&$$$$$$$$$+++++xXXXX++;;;;;++++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxxXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+x++xxxxxxxxXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$&&&&&$&&&$&&&$$&$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$&&&&&&$$$$$$$$$$xx+xxXXXXX+++++;+;++++++;;;;;;;;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx++xxxxxXXXXX$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&$$$$$$$$++xXXXXXXXx++;;;;;;++++++;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&&&&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$$$$$xxXXXXXXXXx+++++;;;++++++;;;++++;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXx+++++;;;+++++++;;;;++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&&$$&&$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXXXXXXXXXx++++++++++++++++;;;+++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+xxxxxxxXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&$&&&&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$$$XXXXXXXXXXx++++++;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXX$$$$$$$$&&&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$&$$$$&$$$$$$XXXXXXXXXXXx+++++;;;+++++++++++;++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxx++xxxxxxxXXXXX$$$$$$$$$$$$$$$$XXX$$$$$$$&&&&&&&&&&$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$XXXXXXXXXXXx++++++;;+++++++++;+++++;+++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxx+++xxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxx++++;;+++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&$$$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$XXXXXX$$XXXXXxxx+++;;+++++++++++++++++++++++;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$$&&&&&&$$$$$&&&&&$$$$$$$&&&$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$$$$$$$&&$$$$$XXXXXX$XXXXXXxxx++++++++++++++++++++++++;++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&$$&&$$$$&&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&$$$$$&$$$$$XXXXXXXXXXXXXXXx+++++;+++++++++++++++++;;;+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&$&&$&$&&$$$$$$$$$$$$$$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&$$$$$$$$$$XXXXXXXXXXXXXXXx+++++++++++++++++++++++++++++++++;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&$$$&&&&&&$&&$$$$&&&&&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXxXXXXx++;++++++++;;+++++++++++++++;;++;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+xxxxXXXXXXX$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$XXXXXXXXXXXXXXX++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXXX+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;+;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXx+;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;++++++;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;;;++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXX$$$$$$$XX$$$$$$X$X$$$$$$$$$&&$&&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXx;+;;;+++++++++++++++++++++++++++++++++++++;;;;+;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXx+;;;;;+;;++++++++++++++++++++++++++++++++++;+++;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$XXXXXXXXXXXXX++++;+++;;++++++++++++++++++++++++++++++++++++++;;;;;;;;;++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$&&$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$XXX$XXXXXXXXXXXXx+++++++++;;;+++++++++++++++++++++++++++++++++++++;;;+++++;;+++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$XXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$XXXXXXXXXXXXXXXX++++++++++++;;++++++++;++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;+;+++++;+++;+;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXX$$$$$XXXXXXXXXXXXXXXx++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;+++++++;;+;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;+;;+++++++;++;;+;;;+;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXX$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++;;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXXXXXX$X$$$$$$$XXXXXXXX$$$$$$XXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++++;++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXx+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++xxxXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$$&&&&&&&&&&&&&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++;+++;;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;+;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxXxxXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx++++++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;:::;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXXX$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXX$XXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXXXXx+;+++++;;;++++;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;;;+;;;+;;;;;;;;++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXXXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++++++;;++x++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;+;;;;;;;;;++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXXX$$$$$$$$$$$$$$$$$$$X$$$$$$XXxXXXX$$&&$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX+++++++++++++++++xxx++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$XXX$$XX$$$XXXXXX$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$Xx+++++++;+++++++xxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++;+++++;;;;;;;;;;;;;;;;;;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XX$$XXX$$$$$XXXX$$$$$&$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$Xx++++++++++++xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxXXXXXX$$$$$$$$$$$$$$$$$$XXXX$$X$$$$$$XXXXX$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXx+++++;;++;++xxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$X$XXX$$XXX$$$$$$$$XXXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$$XXXXXXXXXXXXXXXXXXX$$$$$X$$Xx+++++++++++++xxxxxxxxxx+x+++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$$$XXXXXXX$$$$$$$$$$$XXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXX$$$$$X$$$$$$$$$$$$x++++++++++xxxxxxxx++x+xxxxx+xx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;+;;;+++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$X$$$$$&&$$XXX$$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$$Xx+++++++++xxxxxxxxx++x+xxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;+;;+++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$&&&$XXX$$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++++++++++x+xxxxx++xx++xxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;++++++++xx+xxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXX$$XXX$$$$$$$$$$&&&&$XXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xxx+++++++xxxxxxx+xxx+xxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXX$XX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$&&&&$XXXX$XX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x+++xx+++xxxxxxxxxx+++xx++xxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XX$$$$X$$$$$$$$$$$$$$$&&&&XXXX$XXX$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx+xx++xxxxxxxxxxxxx++xxxx+xxxxxxxxxxxxxxxxx+++++++++++x+++++++++++++++++++++++++++;;;;;;+++;;;;;;;;;;;;;;;;;++++++++++++++;;;;;;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$XXXX$X$$$$$$$$$$$$$$$&&$&&&$XXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx+++++xxxxxxxx+++xxxxxxxx++xxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++x++++++++;;++++;;;;;;;;;;;;;;;++++++++++++++;;+;;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$X$$$XX$$$$$$$$$$$$$$&&&&&&&$XXXXXXXX$$&&$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx+++++xxxxxxxx++x+xxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;+++++++++++++++++;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$$$$$$$$$$$$$$$$$&&&&&&&&&$XXXXXXX$$&&&&$&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxxx+++++xxXXxxxxx++xxxxxxxxxxxxxxxxx+xxxxxxx+x+++++++++++++++++++++++++++++x++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++;;;++++++++++xxxxxxXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$&&$&&&&&&&$XXXXXXX$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxx++++xxxxxxxxxxxxxxxxxxxxxxxxxxx+xx+xxx+xxx+++++++++++++++++++x++xx++xx++++++++++++++++;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$&&&&&&&$&&$XXXXXXX$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxx+x+++++++++++++++++++++xx+xxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++++++++++;;;;++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$XXXXXXXXXXXXXXXXXXXXXXXxxxxxXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&$XXXXXX$$$$$$$&&$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXxxXXXX$$XXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxx+++++++++++++++++xx++x+++xxxxxxxxxxxx++++++++++++++;;;;;;;;;;;;;;;;;;;+++++++;++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$&&&&&&&&&&&&&$XXXXXXX$$$&$&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxXXXXXxxxXxxXXxxxxxxxxxxxxxxxxxxxxxxxxxx+++++xxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;+++++++;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$&&&&&$&&&&&$$XXXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$$$$XXXXXXXXXXXXXX$$$$$XXXXxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxx++++++xxxxxxxxxxxxxxxxxxxxxxx++++++++++++;;;;;;;;;;;;;;;;;;;;++;++;;;;;++;+++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$XXXXX$$$$$&&$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$$$XXxXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXxxXxxxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;;;;;;;;;;;;+++++;;;;;;+++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&&$$XXXX$$$$$$&$$&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXX$$$$$$$XXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;;;++++;;;;++++++xxxxxxxxxxxXXXXXXXXXXXXXXX$XX$$$$$$$$XXXXXXXXXXXXXXXXX$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&$XXxXX$$$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXX$$X$$$$XXXXXXxxxX$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;;;;;+++++++++xxxxxxxxxxxxXXXXXXXXXXX$$$X$$X$$$$$$XXXXXXXXXXXXXXXXXXXX$$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&$&&&&&&$$$$XXxX$$$$$$&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXxxxXXX$XX$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;+;;;+++++++++xxxxxxxxxxxXXXXXXXXXXXXX$$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$$XxxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$XXXXXXXXXXXXX$XXXX$$$$$$$XX$$$$XXXxxxXXXXXXX$$$$XXXXXXXXXXX$$XXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxxXXXXXXXXXXXXXX$$$X$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$$$X$$$$$XXX$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXX$$$$$$X$$XXXXXXXX$$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;+++++++++++xxxxxxxxxxXXXXXXXXXXXXX$XXX$$$$$$$$XXX$XX$XXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXX$$$$$$$$$$$$$$$$$XX$$$XXXXX$$$$$$$$$$$$$$&&&&&&&&&&&$$&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&$$$&&&&&XXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$XXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxxXXXXXXXXXXXXXX$$XXXXXXX$$XXX$$XXXX$X$$XXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$X$$$XXX$$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$$&&$XXXXX$$$$$&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$&&XXXXXXXXXXXXXXXXXXXX$$$$X$$$$XXXX$X$$XXXXXXXXXX$$$$$$$$$$$XXXX$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxxxxxxXXXXXXXXXXXXXXXXXX$$XXXXXXXXX$$XX$XX$XXXXXXXXX$$$$$$$$$$$XXXX$$XXXXXXXXXXXXXXXXxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$XX$$$$$$$$$$$$$$$&&&&&&&&&&&&&&$$$$XXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$XX$$$$$$XXXXXXXX$$$$$$$$$$XX$$$$$$$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$XX$XX$X$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$$$$XXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$&$$$$&XXXXXXXXXXXXXXXXXXXXXXXXX$$XX$$$$$$$$$$X$$$$XXXXX$$$$$$$$$XXX$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++;;;;;;;;;;;;;;;;+;+++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$$$$XXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$XXXXX$XXXXX$XXXXXXXxxXXXXX$$XxxXXX$$$$$$$X$$$$$$$$$$$$$$$$XX$$$$$X$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++;;;;;;;;;;;;;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$$&$XXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$XXXXXXXXXXXXXXXXxxXXXX$$$$$XxxxxxxxxXX$$X$XXXX$$XXXXXXXXX$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$&$XXxxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXXXXXXXXXXXXxxXX$$$$$$$$$XXXxxxxxxxxxxX$$$$$$$XXXXXXX$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++;;;;;;;;;;;;;;;;;++++++++++++xxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&$$&$XXXxX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXXXX$$$$$$$$$$Xxx++++++++++++xxxX$$$XXX$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++;;;;;;;+;;;;+;;+++++++++++xxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXXxXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XXXXXXXXXXXXX$$$$$$$$$$XXxx++++++++++++++++xxxXX$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++;+++++;++++++;;;;;+;;;;++++;;++++++++++xxxxXXXXXXXXXXXXXXXXXXXXX$XXXXXXXXXXXXXX$$$$$$$XX$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&$$$$$$$$$XXXXX$$$$$$$$$$$XX$$$$Xxxxx++++++++++++++++++xx+xXX$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+;+++++;;++++++;;;++;;;;+;+++;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&$$XXxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$X$$$$$$$$$$$$$XXX$$$Xxxxxx+++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++;+++;;;++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXX$XXXXXXX$$XXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$XXxXXX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$XXXX$$$$XXxxxxx+++++++++++++++++++++++++++xxX$$&$$$$$$$$$$$$$$$$$XXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++;+++++++++++;;++;;;+++++++++++++x+xxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$$XX$$XXX$$$$$XX$$$$$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&$$$$$$$XXxXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$XX$$$$XXXXxxxxx++++++++++++++++++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXxXXXXxXxxxxxxxxxxxxxxxxxxxxxxxxxxxXxxxxxx++++++;+++++++++++;+++;;;+++++++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$XXXX$XXXXXXXXXX$$$X$X$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$$$$$$$XXxXXXX$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$X$$$$$$$$$$XX$$$$$XXXXxxxxx+++++++++++++++;;++++++++++++++xX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXxxxxxxxxxxX++++++;;+++++++++++++;++++++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXX$XXXXXXXXXXX$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&$$$$$$$XXXxxxXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXxxx+xxx+++++++++++;;;;+++++++++++++xxX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxXXXxxxxxxxxxxx+++++;;+++++++x+++++;;+;+++++++++++++++++xxxxxXXXXXXXXXXXXXXXXX$$$XXX$$XX$$XXXXXXXX$$XX$$$$$$$$$$$XX$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$$XXxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXxxxxxxxxxx+++++;;;++;;+++;+++++++++xxX$$$$$$$$$$$$$$XXXX$XXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxXXxx+xxxx++++;;;++++++xx+++++;+;;++++++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$XXX$XXXXX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XXxxxxXX$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$XXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxXXxxxx++++++++++++++++++xxxxxxXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXxxxxxx+xxxxxx++++;;;+++++++++++++++;;;;++++++++++x++xxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$XXX$XX$XX$$$$$$$XX$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$XxxxxxXXX$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxx+++xxxxxxx++;;;+++++++++++++++++++;;;++++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$X$$$XXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXX$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$XXxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxx+;+xxxxxxxx++;;+;;++++++++++++++++;;;++++++++xxxxxxxxxxxXXXXXXXXXX$XXXXX$$$$X$$XXXXXX$$$$XX$$$XXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxx+;+xxxxxxxxx++++;;;++++xx++++++++++;;;++++++xxx+xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXX$XXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+;;xxxxxxxxxx+;;;;;++++++x+++;;;;+++++++;+++++xx++xxxx+xxxXXXXXXXXXXXXXX$$$$$$$XXXXXXXXX$$XXXXXX$$$X$$XXX$$XXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxx+xxXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$XX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxx+;+++xxxxxxxxx;;+++++++++xxx++++++++++;;;;+++++xxxxxxxxxxxxXXXXXXXXXX$XX$$$$X$$XXXXXXXX$$XXXXXXXXXXX$$XXX$$XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxxxxxXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxx+++++xxxxxxxxxxx+;++++++++++xxx+++++++++++++++;+++xxxxxxxxxxxxX$XXXXXXXXXXXXXXXXXXXX$$$$$$$XXXXXXXXXXXX$$XX$$$XXXXXXXXXXXXXXXXXXXX$$$$X$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx++;;+xxxxxxxxxx+;++++++++++x++xxx++++++++++++++++xxxxxxxxxxxxX$$XXX$XXXXXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx+xXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxx+++x++;+++xxxxx+xxxx+++++++x++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXX$X$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$XxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxXx+++x+++x+++++;;;;+++xxx+xx+x+++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$X$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxx+xXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$XxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxXXXXxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxx+::;xxx+++++++++;++++++++++x+xx++++++++++++++++++++++++++++++++++++xxxxxxxxxxXXXXXXXXXXXXXXXXXXXXX$XXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$XXXX$$XXXX$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx+++++++++::;++x++++++x++;;;+++++++++++x++;+;+++++++++++++++++++++++++++++++++xxxxxxxxxXXXXX$XXXXX$XXXXXXXX$XXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXX$$$X$$$$$$$$$$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++::;++++++++++x+;;++++++++++++x+++++++++++++++++++++++++;;;+++++++++++xxxxxxxxXXXX$XXXXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXXXX$$XXX$$$$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$XXxxxxxxxxXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXxxxxxxxxxxx++++++++++++++++++++++++++++++++++::;+xx+++++++x+;;;;+++++++++++++++;;;++++++++;;++++++;++;;++;++++++++++xxxxxxxXXXXXXXXXXXXXXXXXXX$$$$X$$$X$XXXXXXXXXXXXXXXXXXXXXXXXXX$XX$$X$$$$XXXX$XXX$$$$$$$$$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXX$XXxxxxxxxxXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++x+++++++++++::;++++++++++++;;;+++x+x++++++++++;;;;+++++++++++;;++++;;+;++;;++++++++++xxxxxxX$XXXXXXXXXXXXXXXX$$$XX$$XX$$XXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$XXXXXXXXXXXX$$$$XXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXX$XxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++++++++++++::+xx++++++++++;;;;+++++xx++x+x+++++;;+++++++;+++;;;;++;;;+;;;;;++++++++++xxxxxxXXXXXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXX$X$XX$$XXXX$$XXX$$XXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXXxxxxxxxxXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$XxxXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+xxxx+++++xx++++++++++::;x+++++++++x++;;;+++++x++xxxxxxx+++;;;++++;;;+;;;;;+;;;;;++;;;;;;++++++++xxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXX$$$$$$XXX$XXX$$$$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$XXXXXxxxxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&$$$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++xx+++xxxxxxxxx+++++++++::;+++++++++x+++;:;++++++xxxxxxxxxx+++;;;+++++;++;;+;;++;;+;;;+++;;;;++++;;+xxxxXXXXXXXXXXXXXXXXXXXX$XX$$$XXXXXXXXXXXXXXXXXXXXXXXX$$$$X$$$$XX$$XXXX$$$$$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$X$$XXXxxxxxxxxXXXXX$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$XXXXXXXXXxxxxxxxxXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++::;+++++xx+++x++;;;;;++++++xxxxxxxx+++++++++++;;;++;;;;;;;++;;;;++;;;;;++;;+xxxxxXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$XX$$$$$$$XXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXX$$XXxxxxxxxxxXXXX$$$$$$&$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++xxxxx+x+++++++++::;+++++++++++++;;;;;++++++++xxxxxxxx++;;++++++++;;+++;++++++++++++++++++++++xxxXXXXXXXXXXXXX$XXXX$$XXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++++x+++++++++::;++++++++++xx++;;;;;;++++++++xxxxxxxx++;;+++;;++;;;+;;;+++;;;;+;;;;++++;++xxxxXXXXXXXXXXXXXXXXXXXXXXX$$$$XXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$XXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$$$$$$$$$$$$$$XXXXXxxxxxxxxxXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++x++++x+++++++++++++++++++++++++++xxx+xxxxxxxxxxxxxxxxxxxx++++++++++++++++x+;;;;;++++++++++xxxxxxx++;++++;++;;;;;;;+++;;+;++;;;++++++xxxxxXXXXXXXXXXXXXXXXX$XX$XX$$$XXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$XX$XX$$XXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXXXxxxxxxx+xXXX$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxxxxx+++++xxx++++++++x+++++x+;;;;;;++++++++++xxxxxxxx+;+++;++;;+;;++;++++++;+;;;+;+++xxxxxxXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXXXXXXXXXXXXXXX$$$$$$$$X$$XXXX$XX$$$$XXXX$XX$$$$$$$$$$$$$$XXXXXXXXXXX$$XX$$$$$$$$$$$$XXXXXXxxxxxxxxxxXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxx++++++++xXXXx++++++++x+++++;;;;;;;++++++++++xxxxxxxx++++;+++;+;;;+++++++++++;;++;++x+xxxXXXXXXXXXxxxXXxXXXXXXXXX$XXXX$XXXXXXXXXXXXXX$$$$$$$$$$$XXX$$XXXX$$XXX$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XXXxxxxxxx++xXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXxxxxxxxxXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxxxx++;+++xx+++;;;;;;;+++++++++xxxxxxxxxx++;+++++;;+++++++++++++++++++++++xxXXXXXXXXxxxxxxxxxXXXXXX$XXXX$$$XXXXXXXXXXXX$$$X$$$$XXXXXXXXXXXXX$$$$XXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$XXXxxxxxxx++xXXXXXX$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXXXXXXXXXXXXXxXxxxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxXxxxxxxxx++++++++;;;;;;+++++++++++xxxxxxxxx++++++;+;++++++++xxxx+++++++++++++xXXXXXXXXXXxxxxxxxxXXXXXX$$XXXX$XXXXXXXXXXXXXXXXXX$$$XXXXXXXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX$XXxxxxxxxx++xxXXXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++++++++++xxxxxxxxxxxxxxx+++++;;;;;;;++++++++++++xxxxxxx++;;;;+;++++++++++++++++++++++++xXXXxxxXXxXXxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXX$$$$$$XX$$$XX$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx++xxXXXXXXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$xXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxXXXXXXXXxxxxxxxxxxxx+++xxxxxxxxxxxxxxxxxxxxx++++++++++++++++++++++++++xxxxxx+xxx++xxxxxxx+;;;;;;;++++++;;++++xxxxxxx+;;;;;;+++++++++++++++++++++xxxxXXxxxxxxxxxxxxxxxxxxxxxXXXXXXX$XXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx+xxxx+++xXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&xXXXXXXXXXXXXXXXXXXXXXXXXXXxxxXXXXxXXXXXXXXXXxxxxxXXxxxxxxxxxxxxxxxxxxxxxxxxxxx++++++++xxxxxxxxxxxxxxxx++++++++++++++++++xxx+;;;;;;;;++++++++;;+xxxxxxx++;;;+++++++xx++++++++++++++xxxXXxxxXXxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$XXXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxXXXXXXXXXXXXXXXXXXXXXXxxxxx+xx++++xXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXxXXXXXXXXXXXXXXXXx+++xxx+xxxxxxxxx+++++++++++++++++++++++++++++++++++++++++xx+++++;;;;;;;;;+++++++;;++xxxxxx++++++++++xx+++xx++++++++++xxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXxXXXXXXXxxxXXXxxxXXXXXxxXXxxxxxxxxx++++xXXXXXXXXX$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx+++++++++xxxxxxxx++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;+++++++++++++xxx++++;+++++++xx++++++++++++xxxxxxxxxxxxxxxxxxxxx++xxxxxxxxxXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxXXxxXXXxxxx++xx++++++xxXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxx++++++++++++++++++++++++++++++++++++++++++x+xxx+++;;;;;;;;;+++++++++++++xxx+++++;;;+;;;+x+++++++++++xx+xxxxxxxxxxxxxxxxxx+xxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxXXXxxxXXXXxxx+++++++++++xxXXXXXXXXX$$$$&&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++xx+xxx++;;;;;;;;;;++++++++++++xxx++++++;;;;;;+++++++++++++++++++xxxxxxxxxxxx++xxxxxxxxxxxxxxxxXXXXXXXXXXXX$$$$$$$$$$$$$XXXXXXXXXXXXXXXXXXXXxxxxxxXXxxxxxxxxxxxXxxxxXXXxxxx+++++++++++xxXXXXXXXXX$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++x+++++;;;;;;;;;;+++++++++x+++xx++;++++;;;;;;+++++;++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$$$$$$XXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXX$$Xxxxxx+++++++;+++xXXXXXXXXXX$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;++++++++++++++++++++++++++;;;:;;;;;;;+++++++++++++++++;;++;++;++++++++++++++++++;++++++++xx+++++xxxxxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$$$XXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxx+++++++++++xxxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;;;;++++++++++++;++++++++++++++;;;;;;;;;;;+++++++++++++++++;;++++++;++++++++++++++++++++xxxx+++++++xxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$$$$$$XXX$$$$XXXXXXXxxXxxxxxxxxxxxxxxxxxxxxxxXXXXXXXxxxx+++++++;;+xxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;++++++++++;+++++++++++++++++;;;;;;;;;;;;+++++;+x+++;+++++;+;;;;;++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXX$$$$$$$$$$$$XXXXX$$$XXXXXXXXxXxxxxxxxxxxxxxxxxx+xxxxxxXXXxxxxxx+++++;;++xxXXXXXXXXXXX$$$X$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++;+++++;;;;;++;++++++++++++++++;;;;;;;;;;;;;+++++++++;;;+++++;;+++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxXXXXXXXXXX$$$$$$$$X$XX$$$XXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXxxxx+++++;;;+xxxXXXXXXXXXXXX$$XX$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;+;+++++++++++++++++++++++++++++++;;++++++;;;;;;++;;;++++++++++++++++;;;;;;;;;;;;;++++++x+;;;;;+++;;;+++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXX$$$$$$$$$$XXXX$XXXXXXXxxxxxxxxxxxxxxxxxxxxx+xxxxxxxxxxXxxx++++;;;++xxXXXXXXXXXXXXXXXX$XX$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;;;;++++++;;;;;;;++++++++++++++++++;;;;;;+;+++++++++++++++++++++;;;;;;;;;;;;;;+++++x+;;;;;++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$XXXXXXXXXXxxxxxxxxxxxxxxxxx++xxxxxxxxxxxxXXxx+++;;+;;+xxxXXXXXXXXXXX$$$XX$XXX$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;;;;+++++++++;;;;;;;++++++++++++++++++;;;;;;++++++++++++++++++++++++;;;;;;;:;;;;;;;;+++x+;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxXXXXXXXXXXX$$$$$$XXXXXXXXXXXXXXxxxxxxxxxxxxxxx++xx++xxxxxxxXXXxx++;;;++xxXXXXXXXXXXXXX$$XX$$XXXXX$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;+;;;;++;+++;;;+++++++++++++++++++;;+++++++;+++++;;;;;;;;;;;;;;;;;;++++;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXXXX$XXXXXXX$XXXXXXXXXXXXXXxXXXxxxxxxxxxxxxxx++xxxxxxxxxxxxXXx++++++xxXXXXXXXXXXXXXX$$$$XXX$$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;+++++++++++++;;;;;;;;;+;;;;;;;;;+++++++++++++++++++;;;+++++;;+++++++;+;;;;;;;::;;:;;;;;;;;++;+;;;;;+++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXX$$$XXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXX+;;+xxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++;+++;++;;;++++;;+;++;;;;;;;;;;;;;;;;;+++;;;;;;;;++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXx++xxxxxXxXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&+++++++++++++++++++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;;;;;;+++++++++++++++++++++++++++++++++++++;;;;;;;;;++++;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxXXX$$$XXXXXXXXXXXXXXXXXXXXXXxXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxXxXxxXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;;++++++++++++++++++++++++++++++++++++;;;;;;;;;+++;;;;;;;;+;++++++;;;;;;;;;;;;;;;;::;;;;;++++++++++++++++++++++++++++++++++xxxxxXXXXXXXxxxxXXXXX$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$&&&&&&&&&&&$&&&&&&++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;+++++++++++++++++++++++;;+++++++++++;;;;;;;;;;;;;;;;;++++;;+++++++;;;;;;;;;;;;;;;;;;;;:;;;+++xxxxx+++++++++++++++++++++++++xxxx+++xxxxxxXXXXX$$$XXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&$$$$&&&&&&&&&&$&&&&&&+++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++++++++++++++++++++++++;;;++++++++++;;;;;;;;;;;++;;;;+;;;++;;++;+++++;;;;;;;;;;;;;;;;;;;++;;;;+xxxxxx++++++++++++++++++++++++++++++++xxxxxxxxxXXXXXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&$&&&&&&&&&&XXxxx;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++++++++;;;;;;;;;;;;;;;;;;++;+++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;++++++++++++;;;;;;;;;;;;;;;;;;;;;;;+++++xxx++++++++++++++++++++++++++++xxxxxxxxXxxxxxxXXXXXXXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$$&&&&&&&&&&&&&&&XXXxx;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++;+++;++++;;+;+++++++++++;;;+;;;;;;;;;;;;;+++++++++++xx++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&$$$$$$$$&&&&&&&&&&&&&XXxx+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;++++;;;;;;;;;;;;;;;;;;;++;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;++;;;;;;;;;+;;+++;;;;;+;;;;;;;;;;;;++++++++++++++++++++;;;;;;;++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$&&&&$$$$$$$$$$&&&&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++;;;;;;;;;;;++;;;;;;;;;;;;;;;;;;++++++++++++++++++++;;;;;;++;;;;;;+++++++++++++++++++++++++++++++xxxxxxxxxxxxxxxxxxxxxxxXXXXXXXXXXXxxxxxxxxxxxxxxxxxxxxxxxxxXXX$XXXXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++++++++;++++++;;+++++++++++++++++++++++++++x+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxxxxXX$$$$XXXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&xxx++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;+++;;;;;;;;+++++++++++++++++++++++++++++++++++++++xxxxxxx+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXXXxxxxxxxxxxxxxxxxxxxxXXX$$X$$XXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&xx+++;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++;;;;;;;;;;;;;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;+;;;;;+;+;;;;;;++;;;+++++++;++++++++++++++++++++++++++++++++x+++xxxxxxxxxxxxx+xxxxxxxxxxXXXXXXXXXXXXXXxxXxXXXXXXXXxxxxxxxxxxxxxxxXxXXXX$$$$$XX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$&&+++++;+++++;;+;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++;;;;;;;;;;;;;;;;;;;;;;;;;++;+;;;;;+;;;;;;+++;;++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXXXXXXXXXXxXXXXXXXXXxxxXXXXXXXXxxxxxXxxxxxXXXXXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&$$$&&&&&&&&&&&&&&&&&$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++++;;;;;;;;;;;;;;;;;;;+++;;;;;++;;;;;;;+++++++++++++++;;+++++++++;;++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxxxxxxxxxxxxxxxxXXXxxxXXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&$&&&&&&&&&&&&&&&&&&&&$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;+;;;;;;;;;;;;+++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+++++++++++++++++++++++++;;;;;;;;;;;;;+;;+++++;;+++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXXxXXXxxxxxxXXXXXXXxxxxxXXXXXXXXXXXXXXxxXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$++;;;;;;;;;;;;;;;;++++++++++;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;++;;;;++++;;;;++++++++;+++;;;;;;;;+++;+;;;+;;;;;;++++++++++++++++++++++++++++++++++++++++++++++++xxxxxxxxxxxxxXXXXXXXXXxXXXxxxxxxxxXXxxxxxxxxXXXXXXXXXXXXXXXXXXxXX$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$&&&&&&&&&&&&&&&&&&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$-----------------------------------Magnificat anima mea Dominum,et exsultavit spiritus meus in Deo salutari meo,quia respexit humilitatem ancillae suae.Ecce enim ex hoc beatam me dicent omnes generationes,quia fecit mihi magna qui potens est,et sanctum nomen eius,et misericordia eius in progenies et progeniestimentibus eum.Fecit potentiam in brachio suo,dispersit superbos mente cordis sui;deposuit potentes de sedeet exaltavit humiles;esurientes implevit boniset divites dimisit inanes.Suscepit Israel puerum suum,recordatus misericordiae,sicut locutus est ad patres nostros,Abraham et semini eius in saecula.-----------------------------------O mi Jesu, dimitte nobis debita nostra,salva nos ab igne inferni,perduc in caelum omnes animas,praesertim eas, quae misericordiae tuaemaxime indigent.-----------------------------------Pater noster, qui es in caelis,sanctificetur nomen tuum.Adveniat regnum tuum.Fiat voluntas tua,sicut in caelo, et in terra.Panem nostrum cotidianum da nobis hodie,et dimitte nobis debita nostra,sicut et nos dimittimus debitoribus nostris.Et ne nos inducas in tentationem,sed libera nos a malo.Amen.-----------------------------------$$$$$&&&$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$X$$$$$$$$$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$&&$&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&$&&$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$X$$XXXXxxxxxXxxxX$X$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXXXXx:x+xXXX$XXxxXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$&&&&$$&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&$&&&&&&&&&&&&&&&&&&&&&&$&&&&$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$XXXxXXXxX+++;;xxXXXXXXXX$$$X$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$&&$$&&$$&$$$$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$XXXXx+X+++;;+xx+XxxXXXxxxX$$&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$&&&&&&&&$$$$$$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$XxXXx+:x+x:;;;;;;;:;xXXXXX$$$X$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$&$$$$$$$$$$&$$$$$&&&$$$&&$$&&&$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&&&&$&&$$XxXx+x+;:;.:..:;;;..:.::+XXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$&$$$$$&$$&$&$$$&&$$&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&$&$$$$$XX;:x.+;;;::..........;++++X$&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$&&&&&$$$$&$&&&&&$&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$xxxxx;:;:..:..............:::;+XX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$Xx+;+;;::;;;..............:.:;;;X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&&&&&$$$$$$$&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$XxXxxx;;:;+;;::::............:;;+X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$&$$$$$$$$&$&$&&&&&$$$$$&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$XXXx+:;:.;x::;::.:::::...:..::::+xX$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$&$&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$XX;+;;;;;:;:..:;:.:;:::::..:;;xx+x$$$&$X$&&$&$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$&&&&&&&&&&&$&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&$&&$$&$&&$$$$$$$$XXXXx+++++;;;:...::+xX::...:xXX$$$$$XX$&$X$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&$&$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$XXXxxxxxXx+:+;X;:::....:;.....XXXx;;X$$XX$$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&$&$$&$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$XXxxxx+xx+Xx$++x;++x;::;....:...;XXXX$&&$XX$&$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$$&&&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$XXxx+x++++++XxxXxX+Xxx;;:::::::..:XXXXXXXXXXX$&$&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&$&&&&&&&&&&$&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&$&$&&&$&$XXXxxx++++++++xx+xXxx$XXx+;:;:;:....;X$xxxxxXXX$&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$&&$&$&&&&&&&&&&&$$$&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$&$xxx+++++++++++++x+::;+;XXx;;:....:x:..+$XXxxXXX$$&$&&$&&&&&$$$X$$$$$$$&$&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$$$&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$X+x++++++++++++++X+;::::;+;X+;;.:;:;+XXx$$$$XX$$$$$&&&&&&&&$&&&$$$$$$$$$&$$&&&$&&&&&&&&&&&&&&&&&&&&$$$$&&$$$&$$$$$$$$$&&$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$&$$$&$xxxxxx++++++++++;;xx+x+;:::+:+:+;:;+x++XX$$$$$$$$$$$&&&&&&&&&&$&&&$$$$$$$$$$$&&&$$$&&&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$&&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&$&&&$$$$Xxxxxxxx++++++x++++++x;xXx:::+;:;:;+x+xXXX$$$$$&&&$$$$&$$&&&&&&&&$&&&&$$$$$$$$$$$&&$&&&&&&&&&&&&&&&&&&$$&$$&&$$$$$&&$$&&$$$&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&&$$&&&&&&$$&$$$Xxxxxxx++++++++++++++X+x+x::;:;:::::;+x+++xX$&$$$&&&&$$$$&&&&&&&$$&$$&$&$$$$$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&$$&&&&$$&$$$$&$$$$$$&$&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&$$$$$$xxxxx+x++++++++++++++xx+++;:+:::.:::;+x+++x$$&X&$$$&$$$$$$&&&&&&$$$&&&&$$$X$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&$&$$$&&$$$$&$$&$&$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$Xxxxx++++++++++++++++;+x++;x;;:::::.::;;;+;+xx++xX$$$$&&$$$$$&&&&$$$&$&&$&$$$$X$$$$$&&&&&&$$&&&&&&&&&&&&&&&&&&$$&&&$&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$xxx+x+x+++++++++++++++++xx++;+:::....::;;;;:x++;::++$$$$$&$&&&&&&&$$X&&&&$$X$$$$$$$$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&$$&&$&&$$&&&&$$$$&$$$$$$$$X$$$&&&&&&&&$$&&&&&&&&&&&&&&&&&&&$&&&&&&&&$&$&$$$$$X+xxxxx++++++++++++x+++;;+x;+;:;:::.:..:.:.:;;+::::;+XX$$&$$&&&&$&&$XX$$&&$$XXXX$XX$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&$$$$$$X+xx++xxx+++++++++++++++;++++;+++.:....::::::;++;.:::+xxX$$$&&&&&&&$$X$X$$X$XXXXXXXXXXX$X$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&$$&$$$Xx+xx++++++++++++++++++++;++++++++:;::.::::::.+x++;:;;+;xX$&&&&&&&$$$$XXXX$XX$XXXXXXxxXXXX$$$X$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$xxxxx+++++++++++++++++++++;;x;x+++++x+;:::::::;+++++:;:+x$$$$$&&$$&$$$$XxXX$XX$XxxxxxXxXXXX$XXX$X$XX$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&$&$&&&&&&&&&&&&&$$$$Xx+++x+++++x+++x++++++++++++x;;;+++++;;++++:+++;Xxxx++::+x$X$&&$&&&&&X$$XXxXX$XX$XxxxxxxxXXXXXXXXXXXXX$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&&&&&&$&&&&&&&$$$$Xxx++x++++++++x+x++++++x+++++x;+;;x++;+;+;xxx++xx$XXxx++;+xXX$&&$&&&&&$$$XXxxxXX$XXxxxxxxxxxxXXxXXX$XXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$&&$&&$&$&$&&&$$$$$xxx+x+xx++xxxx++x+++++++++++++X++;x+x++++++++xXxx$$XXX$xxXxXXX&$&&&$$&$$XXXXxXXXX$XxxxxxxxxxxxxXxXXXX$XXXX$$$&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&$$$$$xxxx+xx+++xxxxxx++xxx+++x++x+++xx+++:x+;+;;x++++;+xxxX$XXxx;XXX$$$$$&$$$XXXXxXxxXXXxxxxxxxxxxxxxxxxxXxXXXXX$X$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&$$$&&&&&&&&&&&&&&$$$&&&$$$$$$$$$&$Xxx+xxx+xxxxx+xx+xx+x+++x++x+x+++xx++x;x+;;+++xx+Xx+xx+X$XxxXX$XX$X$&$$x$XXXXXxXxxXXXxxx++xx+xxxxxxxxxxxXXXXXX$$$$$$&&&$$&$&$$$&&&&&&&&&&&&$&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$&&$$$$$$$$Xxxxxxxxx+xxx+++xxxx++xxxx+xxxx+xx+x+++++x++++;$xxx+x+++xXXXXXXXXXXX$$$$XXXxXXXxXxxXXXXxxxxxxxxxxxxxXxxxxXXXXXXXX$$$&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$&$$$&$$$$$Xxx+x+x++++xxx+x+x++x+xxxxx+xxxx++xxXx++++xXx++++XXXxxxxxxXxXXxXxXXX&&$$$XXxxXXXxxx+xXXxx+xx+x+xxxxxxx+xx+xXXXXxXX$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$$$$&$$$$$Xx+x++x++xx+xxx++xxxx+xxxxxx+xxxxx+xxXXx++++xxxxxxXxxx+XXXx$X$xxXXxXX$$$$XxXx+xxxxxxxxXXxxxx++xxxxx+++x+xxxxxXXXXX$$$$$&$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&$&$$$$$$$Xxx+x+++++x+xxxxxx++x+xxxxxxxxxxxxxxxxxxxx+xxxXXxxxxx+xxXx+XXXXxxxXXXX$$$$XXX$xxxXxxxxxXxxxxxxx+xx++xx+++++xxxxxXxXX$X$$$$$&&&&&&&&&&&&&&&&&&&&$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$Xx+x++++x++++x+xx+++xxxxxxxxxxxxxxxxxxxXX$xXxx+XXXX+xX++x+;;:XX++xxxxXX$X$XxX$$+xxXxxxxxxXxxxxx++x+xx++xx+xxxxxxxxxXX$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$&&&&&&$$&&&&&&&&&&&&&&&$&$$$XXxxx++++++++x+x+++++++xxxxxxxxxxxxxxxx+xXXXxxXXxXXx+xxXxx+++xx$XxXXxxXX$$$XXXXX++xXx+++xxxxxxxx+++x+++++++xxxxxxxxxXXX$$X$$$$&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&&&&&&&&&$&&&&&&&&&&&$$&&&&&$Xxx++++++++++x+x+xx++xxx+xxxxxxxxxxxxxxx+x$XXX$XxxXXXx++x+XxxxxXX$$$XXXXX$$XxXx$Xx;xXx+xxxXxxxxxx+x+x++++++x+xxxxx+xxXXXXX$X$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$&&$$&&$&&&$$&&&&&&&&&&$&&$&&$$xx++++++xxxx+++xx+x+++x+xxxxxxxxxxxxxxx+xxxX$X$$xxXXXxXXXXxXXxXXx$XXX$X$X$$XxX$$x;;+xx++xxxXxxxxx+xx+++xx++x++xxxxxxxxxX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$&&&$&&&$$$&$&&&&&&&$$&$&$$$Xxx+++x++x+xx+xxxxxxxxx+xx+xxxxxxxxxxxxx++xx$$XXXXXXXXXX$XXXXX$XXX$$$$$X$$$$$XXXX+;;+xx+xxxxXxxx+xx++++x++xx++xxx+x++xxXXXX$$$$$$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&$&$$$$$$XXx+x+++++++++x+xxxxxxx+x+xxxxxxxxxxxxxxxxxXx$$$XXXXXX$$XXXXX$$$$$$$$$$$&$$X$$XXX;++;+xx++xxxXxxx+++x+x+++x++++xxxxx+x+xXXXX$$X$$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&&&&&$&&&&&$&&$$$$$$Xxxxxx++x+++++++xx+x+++xxxx+++xxxxx+xxxxxxxxxxX$$$$X$Xxxx;;++;+xXxXXX$&$&$&$$$$XX$xx+xxxx+xxxXxxxxxxxxx++++++++xxx+xx+x+xxXXXXXXX$$$&$$&&&&&&&&&&&&&&&&&$$$$$$$&&$$$$$&&&$$$$$$&&&&&&&&&$$$&$$$xxxx+xxxxx+xx+xx+x+xxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxx+++;+;;++++x+xXX$$$$&$$$$$$XX$xX$XxXx++xxXxxxxxxx+++x++++x+xxxxxxxxxxxXXXXXX$$$$$$$$&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&$$$$$$XXxxxxxxxxxx+xxx+xxxxxxxx+xxxxxxxxxxxxxxxxxxxxx$$xx++;;;;:;;;+++++XXXX$X$$$&$$&$X$$xX$xx$x++xxxxxxxxxxx++++x+++xx+xxxx+x++xxXXX$XX$$$$$$&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$Xxxx++xxxxx+xxxxxxxxxxxxxxxxxxxxx+xxxxxxxx++xxxXX$Xxx++;;;:::;;++++;xXXXx$$$$$&$$$&$$$Xx$xxXxx+xxxxxxxx++x+xxxxx+xxxxxxxxxxxxxxXXX$$$X$$$$$$$&&&&&&&&&&&&&&&$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&$$$XXxxxxxxXX$&$XXXXXXXXXxxxXxxx+++xxxxxxxx+x+xxxxXXX$xxx++:;;:;;:+++++XxXXX$X$$$$$$$$&$$XxxXxxXx++xxxxxxxxxxxxx+x++xx+xxxxxx+xxx+xxxXXX$$$$$$&$$&&&&&&&&&&&&&&&$$$&$$&$$$$$&&$&&&&&&&&&&&&&$&&$$XXX++x$XX$$$$$$X$XX&$XXXXXXXXxx$$X+XxXXxXX$XXx+$$$Xx+;+;;++;:+:;++x+xXxXX$$$$$$$$$$$$$$X$XXXXXx++xxxxxxxxxxxxxxxxxxxxxxxx++x+++x+xxXXXXX$$$$$$&&&&&&&&&&$&&&&&$$$$$$$$$$$&$$&&&&&&&&&&&&&&$&&$$$XXxxX$$$$$$$$$XXXXX$X+;xx;;++;;$Xx++x++x++xx+;x$$x+;;+;+++;:;xx+;Xx$XX$$$$$$$$$$$$$$&&$XXXxx$$x+xxxxxxxxxxxxx++++++++++++++++xxxxxXXXX$$$$$$$&&&&&&&$&&&&&&&&$$$$$$&$&$$&&&&&&&&$&&&&&&&&&&&&$$X$XX$$$$X$$XX$$XXXxX++;;;::;+;:xxx+;+;;+++;++xx$XXxx;;+;+++x;+x+++xXXX$XXXX$$$XXX$X$$&$$$XXX$$xxx+xxxx++++xx+++++++++++xx+xxxxx+xxxXXX$$$$$$$$$&&&$$&&&&&&$&&$$$$$$$$$$&&&&&&&&&&&$&&&&&&&&&&$XXXXXX$$$$XXXxxx++x$X+;;;;;;;;;;x$$;+;;:;X++;;xX&XX+++;;;;+xx+;+xx+xxX$XX$XX$XXXXXXXX$$$$$$$X$$$xxxxXx+x+++x+++++++++++x+++++++xxxXxXXXXXX$$$$$&$$&&&&&&&$&&&&$$$$$$$$$&&&&&&&&&&$&&&&&&&&&&&&$$$$XXX&&X$X$Xx++;x$xX+:::::;::;;xxx$:+x++xx;;;xx$$XX+xx+++;+++;x+XxXXX$$xXXXXXXXXXXXX$$$$$$X$X$$$xx+xx+x++++++++++++++++x+x+x++++xXXXXXXXX$$$$$&&&$&&&&&&&$&&&$$$$$$$$$&$&&&&&$&&&&&&&&&&&&&&&$X$XXXxX&$xXXX++++XXx+X;:;+++++++X$XxXXX$x++;;++xXXXX+x;;+x+xx++Xx+x$$X$$$XXXXXXXXXXXX$$$$$X$$$$X$x++x+x+++x+x+++++++++++xxxxxxxxxXXXXxXX$$X$$$$&&&&&&&&&$&$$&&$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&&&XXXXXxX$$X+xXx+;$$XXx+++;::...::;+++XxXX++++++x+xxxXXx;xx+xx++;x++xXX$&$XxxXXXXXxxxXX$$$&$$$$&$$$$Xxx+++++++x+xxX++x++++xxxXXXxxxXXX$XXXX$$$$$$$&&&&&&&&&&&$&&$$$$$$$$&&$&$&&&$&&&&&&&&&&&&&&&&$XXxxxxX$XxX+x+XX$Xx+++::;:.:.+xxXXXXXXX++++++x++x$XXx++;+++++++xxXXXXX$$$$XXXXxXxxxX$$$$$$$$$$$$$XXxx+;;;+.;::::::+:X$$XX$$&$$$$&&$XXX$$$$$$$$$$&&&&&&&&&&$&&$$$$$$$$&$$&&&&&&&&&&&&&&&&&&&&&&&$XXXxxx&$$$$XXXx$XXXx+::::;+x;;;xxxxxXx+++++x+xx+X$&x+++;;+++++XxXxx$X$XX$XXxxxxxxxX$$$$$$$$$$XXXx;++++;;:::;;:::::;XXx:xXX$$$$&$&&$$X$$$$$XX$$$$&&&&&&&&&&&&$$$$$$$$$$$&&&&&$&&&&&&&&&&&&&&&&&&&XXXxxX$xXxXxxx&$XXx+;;xx+;:;::;;:+XXx++xx+++xx+x$$$x;;+;;;;;xxXXXX$$$X$XXxxxxxxxxxxX$&$$$$X$X++;;;;;Xx;;+++x;;;::$xX:+xXX$$$$&$&&&&$$$$$$X$$$$&&&$&&&&&&$&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&$&$XXxxX$XXX$XX$$$Xx+;xx:;.::::++x+x+xx++x+xx++xXX$Xx+;;;;;;;++xxxX$X$XXXXXxxxxxXXXXx$$$$$$$x+++;;;+xx:++:::::+xxXxX;:+xX$&$$&&$&&&&&&&&&&$$$&&&&&&&&&&&&&&&$$$$$$$$&$&&&&&&&&$&&&&&&&&&&&&&&&&&&&&XXxXxx$$X$$$$X$Xxx++:;;:;:.::++xx+xXx++xxxxxxX$Xx+;:::::;;+++xX$$XXXXXXXXXXXXXXXxx$$$$Xx++++++++X;x:;.::::;;xxX+;x+Xx$$$$$$$$&&&$&$&$&&&$$&&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&$xXXxXX$$$$X$$$X+xx;;+:.:..::++x+xXx+++xxxxxXXx+;::::::::;;xxxXX$XXxXxxxXxXXXxX$$$$$x+xx++++xxxx:;:::;::::+++xX$$XX$$$$$&&&$&&&&&$&&$&$$$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&$&&&&&&&&&&&&&&&&$$&&&&&&&X$XXX$$XXxX$XXX;+++;;:::..+:x:XxXx++xxxxXXXX+;:::::.:..::;xxxXXXXxxXXxxxXxXX$$$$X$x++x+++++;x:...::.;:++xxxX$$$$$&&$$$&&&&$&&&&&&$$$$$$$$$&&&&&&&&&&&$$$$$$$$$$$$&&&$$&$&&&&&&&&&&&&&&&&&&&&$&$$$XxXX$$XXxX$XXXXX+x+:.+:...::xxXXXxxxxXX$X;;::::::::.:.::;xXX$XXXXxxxxXXXXXX$$$$x++x++++;:::.::..::.;;+x+xx$&&&&&&&&&&&&&&&&&&&&&$$$&$$&&&&&&&&&&&&&$$$$$$$$$$&&&&&&&&$&&&&&&&&&&&&&&$&&&&&&&$$&$xXXXXXx+XXX$Xxx+++.+:..:.:.++xX&$xXxXXX+:::........::::;;+X$$$XX$$Xxxxx$X$$$$X+x+x;X:+;+;:..::;.;+xxx$XX$$$&&&&&&&&&&&&&&&&&$&$$$$$$$&&&&&&&&&&&&&$$$$$$$$$$$$&$$&&&&&$&&&&&&&&&&&&$&&&&&&&&$$X$xXXXXxXxxXX$$Xx+x+.::;.:;;;x+X$X$$+..;:::..:.::.:.....:::;xXX$X$$$XXXXX$&$$$x+XX;X:.+::+x;:::+:+xxx+xxX$$$&$&&&&&&&&&&&&&&&&&&$$$$$$$&&&&&&&&&&$&$$$$$$$$$$$$$$&&&$$&&&&&&&&&&&&&&$&&&&&&&$&&$$$xxxXxxxXxXX$XXxx;+;::.;:+X;:;x;Xx::;;++;;;:::......:;x;++;Xx$&$&$$$Xx$$$$$Xxx+;;;:.;::;:+x;+x:;xX$X$$$$&$$$&$$$$$&&&&&&&&&&$$&$$$$$$&&&&&&&&$$&&$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$$$&&&&&&$&&&$X&Xx+XXXxxx+XX$$$XXx++;;..:.+.x++;Xx;.;.::;.::;:.::.;::;;::;;xxxxXxXXX$$$$$XXX::::++.:.:+;;xXxxxX+X$$$$$$$$$$XX$$$$$&&&&&&&&&$&$$$$$$$&&&&&&&&$&&$$$$$$$$$$$$$&$&$&&$&&&&&&&&&&&&$$&&$&&&&&&$&$$$$x+XXXXXxxXX$$$XXxx+;:x.;.x+;;::;X;:.;:;;:;;;;;;;;;;:;+;++;+;xx++x;;+;;;;+;:::::;:;:x:;:$xxXXXXX$$$$$$$$$$xX$XXX$$$$&&&&&&$$&$$XX$$&&&&&&&&&&&$$$$$$$$$$$$$$$$&&&&$&$$&&&&&&&&$&$&&&&&$&&&&&&&&$X+xXxXxxx$X$$$$X$XX.:.;:;:::::;;;;xx+::;+;::;::;;:;;;;:;;+x+X+;::::.::::;+;:;;;:;;;;;xX:+$XX$X$$X$X$$$$$$XxXXXX$$$&&&&&&&$$$&XX$$$&$&$&&&&&&&&$$$$$$$$$$$$$&$$$&$$&&&&&&&&$&&&$&$&&&&&$&&&&&&&$$XXxXxxxxX$$X$XX$x;;.+;::::.:.:::::::;::::::::::::;;;+;+xx;;;:+;+;;:;::;:;;;;;:;;:;;+;+x$$$$$$$X$$$$X$$$&$x$XX$X$$$$$&&&&&&&$X$$$$&$$&&$$$&$&$$$$$$$$$$$$$$$$$$$$$&&$$$&&&&&&$&&$$$&$$&&$&&&&&$&$XXXxxxXXXXX$X$Xxx.::;::::::::::::::::::.:;;;;;;;;;;;;;:+;;x+++XX;::::;;;:::;;;+;+xxxX++$$$$X$$$$$XXX$$$$XXXX$X$$$$$$&&&&$$&$$$$&$$$&&$$$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$&$$$$$$&$$$$$$&&$&&&$XxxXXxXXXXXX$+x+XXx::::.:...:..::;;::;:.::.::;;;::;;+x+xxX$x+x;::::;:::+;+;;x;;x+X$$$$$&$X$$$$$$$$$$$$$XXXXX$$$$$$&&&&&&$&$$&$$$$$&$&&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$&$$XXxxxXXXx$$$x+;+;;x+::::...:.:.:;;x;::;;:..:::;;::++;:;:+:;;;:::+;;:::;+++++++;;xXXX$$$$$$$$$$$$$$$$$$$$XX$X$$$$&&$&&&&&&&&$$$$&$&$$&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$&$$&$$$&$$xXXXXXXXXX+;;::;:;;;:::...::::;;+Xx;;:::.:::::;;:;;;;xx+;::;:+xx;:;;+;::;+x++xX$XXxX$$$$X$$X$$$$$$$$$XX$$x$$$$&&$&&&&&&&$$$$$$&&$$&$&&$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$$$$&$$$$$$$$&&&$$$$X$XxxXXXXXX+;::::;;+:;::::::.:;:::;X;:;;::;:::::;;:::;;++;;;;;+X$x::;xX+;;;xxx;X$$X$XXX$X$$$$$X$$$$$$$$X$$$xxX$$&$&&&&&&&$$$$$$$$$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$&$$$$$$$$$$$$$$$$$$XxXXX$X+;:::::.:::;::::::::;+:..;X::+XxXx;::;:::::;;;xxx:;+X$X:::+$$;;;xx+xXX$$$$XXX$$$$$$$$$$$$$$$$$$$XxXX$$$$&&$&&$&&$$$$$$$X$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$&$$$$$$$X$$$$$$XXXXxx+:;;:::::.:;;;;::;;::.;X:::;x:.::::;;;:::::;;+;xx:;;X$X;;;+X$x:;x$$xx$$$$$XX$XXX$$$XX$XXXX$$$$$$XxxXX$$&$&&&&&&&&$$$$&$&$$$$&&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&$$&$&$$$$$$$$$$$$$$$$$$$X$xx$x;+x:;:;::::::;;+;;::+:::;x:::;;;..:::;:::::::;++;;;;x$X+;;xX$x:;+X$X;X$$$$$X$XXX$$X$$$XX$$$$$$$$X$$$$$$&&$$&&&&&&&&$$&&&$&&$&$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&$&$$$$$$$$$$$$$&$&$$$$$&$$XXxx$x:+;;:;:::.:..;;;xx:.:;::++x:;;+$;.:::::::::;;;+;;+xx$X+;:x$Xx;;+x$X+xx&$$$$$$$$X$$$$$$$$$$$$$$$$X$$$$&&&&&&&&&&&&&$$$&&$$$$&$&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$&$$$$X$$$$$$$$$$$$$&$&Xx+x$X;+;;:::::.::.;;.;+;::;x::;+X;;;:X::::::;:;;:+;;;:+;X$x;;x$Xx;;;X$Xx;X&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$&&&&&$&&&&&&&$X&&&&$$$$$&$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$&&$&$$$$$$$$$$$$$$$$$&$$&XxxxXX;+;;:::::.:..:;:;;x;;:;x;:;Xx;::+x:;::::::;:+:::;+++++;;xX+;;;x$$X+X$$$xXX$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&$$$$X$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$&&$$&&X$$$$$$$$$X$&$$$$$$$XXxxxxX:+;::::...:.:.:;;;xx+;:;$;::++;;;x:.;;;:::;:::;+;+;;;+xX$++;;Xx$Xxx$$$XXxx$$$$$$$$$$$$$$$X$$$$$$$$$$&$$$&&&$&&&&&&&&$&&&$$$$$$$&&$&$$$$$$$$$$$$$$$$$&$$$&$&&&&$$$$$&$&$$$$$$$$$&&$$$$$$$XXxXx$x;;;;::::..::...::;;x;;;:;x+::;;;+$::::.:;:::.::+;;;;;;;+x+;++X&;xX$$xXxXXX$$$$$$$$$$$$$$$X$$$$$&&&$$&$&&&&$&&$&&&&&&&&&$$$$$$$$&$&$$$$$$$$$$$$$$$$$$&$$$&&$$&$$&$$$&$$$$&$&$$$$&$&$$$$$$XXxXXX+;;;;:;+;:.::...:.:;;x.;:;+x+;;$::::;::..::::::;++;+;;;;+;++;xXX::;+XxXxx+X$$$$$&&$$&$$$$$$$$$$$$&$$&X$&&$&&&$&&&&&&&&$$X$X$$$$$$$$$&$$$$$$$$$$$&$$$$$$$$$$&&&&$$$$$$$$$$X&$$$$$&$$$$$$$XXXXXxX;;;;;:;+;::::...::::;x:.;;;x;;+;::.:..:::.:::;:+;;;;+;++Xxxx+++;;;;;xXxxxxXX$X$$$&$&&&$$$$$$$$$$$$$$&&&&&$&$$$&&&&&&&&$$$$$$$$$$$$&&$$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$&$$$$$$$$$$$XXXXXXX;;;;;:;;;:::..::..;:..:.::;;:::::::::::::..:::;+;;+;XxxXxxX+x+;+;;;;xX$xxxxXXX$$$$&&&&&$$$$$$$&&$$$&&&$&&&&&&&&&&&&&&&$$$$$$$$$$&$&&&$$$$$$$$$$$$$$$$$$$$$$&$&$&&&$$$$$$$$&$$$$$$$$$X$&$XXXxXXx;;;;;:;;;:::::.::.:...:..:::::::::::.:::::.:;;;:;+xX$XXXxxXXx;;+;;++XXxXxxXXXXX$X$$&&&&&$&$$&$&&&$$&&&$&&&&$$&&&&&&&&&&$$$$$$$$$$$&$&$$$$$$$$$$$&&$&$$$$$&&&&&$$$&&$$$$$$&&&$$$$&$$$X$$XXXxxXX+:::;::;;;:;;:::........:::::::::.;::::::::.::+++++xX$$X$$$$x;+++;;;xx++x+xXXXXX$$$$&&&&$$$$$&$&&$$&&&$$$$$&&&&&&&&&&&&&&$$$$$&$$&&$&&$$$$$$$$$$$$$$$$$$$&&&$&&&&$&$&$&&$&$&&$$X$$$$$$$$$XXXXXX;;:;:;;;;;;;:;:::.......:.::::;:.x;::::::::..;;+++xX$$$X$$$$xx;++xx+xxx+x+$XXXXXXX$$&&&&&&$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$&$$$$$X$$$$$$$$$$$$$$&&&&&&&&&&&&$$&&$&$$$$$$$$$$$$$&XXXxXX+:::;:;;;;;;;:;:::.:......::::::::+;;:::::::::+;+Xxx$X$$X$$$x++++x$$XXX++xxXXXXXXX$$$&&&&&$$$$&$$$&&&$$$&&&&&&&&&&$&&&&&&&&$$$$$&&$$$$$$$$$$$$$$$$&&$$$$$$$&$$&&&&&&&&&&$&$$$$$$$$$$$$&X&XXXXXX:;::;::::;::::;:::::....:::::::::+;;;:;::;:;;:;;;xXXX$$$$$X$xxXxX$X$XXxx+xxXXXXXXXX$$$&&&&&$$$$$$$$&$&$&&$&&&&&&&&&&&&&&&&&$$$$&&&&&$&&$$$$$$$$$$$$&&&$$&$&&$$$$&&&&&&&&$&$$&$$&$&&$$&$$&XXXXX;::::;::::;::::.::.::...::::::::::X;:+;;::;:;::;;;+Xxx$$$XX$$$XX$X&$XXXxXXX$XXXXXX$$$$$&&&&$$$&$$$&$$&$$&&&&&&&&$&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$$&&&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$X$x;;::::;::;;:::;:.:::;:...::::.:::::X:;x:;;;X;:::::++xX$$++XX$$$$X$$$$XXXXXX$$$$XXX$$$$$$&&&&&$$&$&$$&$&$&$&&&&&&&&&&&&&&&&&&&$$$$&&$&&&&&$$$$$$$$$$$&$$&&&$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$&$$x;;:::::::::;::;:::.;:;:.::::;::::::;x;+$x+;+;;++:;;;xXX;+XXxxX&$$$$$$$XXX$$$$XX$$$X$$$$$$$&$&$$&&$&&$&$&$&$&&&&&&&&&&&&&&&&&&&&$$$$&&$&$&$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$+;;;;::::;;:;;;:;;:;::;:...::::::::::+X;xx+;;::;;;;;+;+:;:+XxxXx&$$$$$$XX$X$$XXX$$$$$$$$$$$&&&&&&$&&&$&&$&$&$$&&&&&&&&&&&&&&&&&&&&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$:+;;;:::;::+;;+:;;;::x:;;:...::::::::;x+;+x;::::::;;++;+::;xXXXXXx$$$$$$$x$$XXXX$$$$$$$$$$$&&&&$&$&$$&$&&&&&&&$&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$Xx+;;;Xxx+;:;;:XX+;;:;;xxX+:.;::.:;;:;::;x+;+x;;:::+;;;&XX$$::xxXXXXXX$$$$XXXx$&$$$$$$$$$$$X$$&&&&&&&&&$&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$&$&$$$$$$$$$$$$$$$$$$X&$$$&$$$$&$$$$$xXXxxX$$xx++;:;x+XxXXXxXX$XX;::+;+;++::x:::+;+;;;:;+++;XX;;+x;:;X$XXXX$$$$$X$$&$$&$$$$$$$$$$$$&&&&&&&&&$&&$&$$$&&$$&&&&&&&&&&&&&&&&&&&&$&$$$$$$$$$$$$$$$$$$$$&$$$$$$&$$$$$$$$$$$$$$$$$$$$$$&$$$XXx$$$&$$XxXxxxXxXXxxxXxxx+xxxxxxx+xX$xX:;;X+x+;:;+;;;XX;;;;;::+x$XX$$$$$&&&$&$$&&&&&$$$$$$$&&&&&&&&&&$$$&$$&&&&&$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&$$$XXXX$$$XXXxxxxXXXXXxxx++x+xxxXxXXXXX$$X$$;;+++;+;;;+;xx;;:;;:;x+xX$$X$$$$$&$$&&$$$$&&&&$$&&&&&&&&&&&&&&$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$XXX$$$$x++;;++;;;xx+:;+;+x+++x+xxxx+;XXXxX;:++;;;;:++xx;;::::;x$+xX$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$&&&&&&&&&&&&&&&$&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$&$$$XX$X$XXx+;+;;;;;;;;;:;;:;;;;::x;:;;;+xxxx$X+:+x;;:;;+$x;:::::X+++x$$$&$$$$$$&&&&&$&$&&&&&&&&&&&$&&&&&&$$$$$&$&$&&&&$&$$&&&$&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$X+++;;;;;;;:;+;::::;:::;;+:::;;x++xXxx++x++:;:;&$x;:;xXX$xX$&X$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&&$$$$$&&&&&&&&$$&&&&&&&&&&&&$&&&&&&&$$$&&$$$$$$$$$$&$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxx+++;+;;;:+x;:;;;;;;:;::;::;;;++;+x++$xx;:;;;$&$XX++X$X$$X$X$&$&&$$$$$&&&&&&&&$&&$$&&&&&$$$&&&&&$&$$$$$$$$&&&&&$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$&&&&&$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$XXXX++++;;;+:;;+;;;;;;:;;::::;:::;+++++;;x$$+x+++xX$$$$XXXX$$$$&$$$&$$$$$$$$$&&&&&&&&&&$&&&&&&$&&$&&$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$&&$$$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXx;+x;;;+::+X+;;;;;;;;:::::;:;;;+;+;;;;X$$$$xxxx+;x$$$$X$$$&&$$$$$$$$$$$$&$$&&&$&&&&&&&&$&&$$&$$$$$$$$$$$$$$&&$&&&&&&&&&&&&&&&$&&&&&&&&&&&&$&&$$$$$$&&$&&$$&&&$$$&$&$$$$$$$$$$$$$$$$$$$$$$$$XXXxx;+;::;::;+++:;;;;;:;;:;:;;:;;++;;+:;XxX&$$XXxxx+++XX$$$&&$&$&$&$$$&&$$$$$$$&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$&&&&$$$$$&$$&$&$$&$$$$$$$$$$$$$$$$$X$$xXxxxx++:::;+;;x;;:;;;;;:;;:;:;;:;;+++;:::+;+X$$$XXXXX$$&$&&$$&$&$&&&$$;X$$$&$$&$&&&$&&&&$&&$$&&$&$$$$$$$$$$$$$&&$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&$$$$&&$$$$$$$$&&&&$&$$$&$$$$$$$$$$$$$X&++Xxxxx+;;;:;+;x;;+;;+;;;;;:;;:;+;;++x+;;+;;;xX$$$$&$&&&&&&&&&$&&&&$&&$&$$X$$$&$$$$&$$&$&$$$$$$&&&&$$$$$$$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$&$$$$&$$$$$$$$$$$$$$$$$$$$xXxxxxx+:;;++;x;+;;;+++;;;;;;::+;;+x+::;;;;+;;+x&$&&&$&$$$$$$$$$$$$$XX&$$$$$&&&$$$$&$&$$$$$$&&&&&$&&$$$&$&&$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$&&&&$&$$$&$$$$$&$$$$$$$$$$$$$$$$$$$XXXx+++++;;;;;+x+;;;;+;;;;;;;;;;+;;+;:+x+;;;;::;;+XX$&&&X$$XXX$$$$&&&$xXXXX$$&&&$$$&$$$$&$$$$$$&&&&$$$$$&$$$$$$$$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$&&&&&&$&$$$$$$$&$$$$$$$$$$$$$$$&$$XXXXx+++;;;++;+;x++;;;;+;+;;++;;;+:;::x+;;;+;;:+;++;X$$$&XXxX$X$$$$$$$$$$$$&$$&&&$$$$$$$$$$$$$$$$$$&&$$$$$$$$&$&$$&&$&$&$&&&&&&&&&&&&&&&&&&&&&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX$$$xXxXx+;;x+;;;;+;x+++++x++++;:xx+;+;;:++;+;:+;x;:;;;;+x$$$xxxX$$X$X$X&&$$$$&$&$$&&&$$&&$$&$$$$$$$$$$&&$$$$X$$$$$$$$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxXX+;;+;;;+x;++++x+;+;;;;+;;;;;;++;+;;;;x+:;+;;+x$X$XXxX$$x$XXXX&$$$&$$&$&$&&&&&&$$$$$$$$$$$$&$$$$$$$$$$&$&&$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&&$&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXxXxxxx+;+++;;++++x;x+++;++;;::;;+x+++;;::;xx+;;+++;xXXXXxx+$XxXxX$x$x$&$$$$&&&&$&$&$$$$$$$$$$$$$$&$$$$$$$$$$$$$&$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$$$XXxxXxxxx+;;++;;+++++++++++;+;;:;;;x+++++:;;:++;+;;;;;XXX$$XxxX;$X$X$xX$X$$$$$$$&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&$$&&&&&&&&&&&&&&&&&&$&&&&&&&&&&X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxxXXxxx+++;++;;x;+x;++++++++;;;;;;;xxx++;;+;;+;;:;;+;+x$$$X;xxxx+xX&$X&X$&&$&&&$&&&&&&$&$$$$$$$$$$$$&$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$$X++xxxxxxxx++;+;;+xx+x+;x++++++++;;;;;+xxXx;+x++x++++++;+xXXxx;x;;;+;$$$$$$$&$&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xXxxxxxX+++;++++++;++x+++++;+++;;;;;+xx+:;xxxX+;x++xx+;+xx++;;;:X$$$$$$&&&&&&&$&&&&&&&&&$$$$X$$$$$$$$$X$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$X$$Xx++xXXXXxxxx++;+;++++++++xxxx++x+x;;;;;;;;;;;;+::;;++X+;x;+;+++;;+x$$$$$$&&&&&&&&&&&&&&&&&&&&$$$$$$$$$&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx++xxx$XXXXX+++;;;;;x+x++xx+xx++++;;;;+++x;;;+;;;x+;+;++++x:+;++;;X$$$$$$&$&&&$$$$$$$&&$&&&&&$&$$$$$&$$&$$$$$$$$$$$$$$$$$$$$&&&$&&&&&$&&&&&$$$&$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$X$X$$$$$$$$$$$$$XXX+;XXXXxxxxx+;;;;;;+;;;;xXXx++xxxx+++++++++;x;;;+++++xx++++x+;X$$&$$$$$&&&&&$$$&$&&&&&&&&&&&&&&$$&$$&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxx..++;;;:+;++++;;;;;;;;+;+;;xxXxXX++xXXX$X++++++++;+;+;x$$X$$&$$&&$$$$&&$$&&$$$$$&&&&&&&&&&&&&&&$$$$$$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xxxxxx;;:++;;;;;;x++;;;;;;+;x;xx++++;X;xxxXx$X$XXX+++x$$&$$$$$$$$&&&$$$$$&&$&&$$$$$$&&$$$&$&&&&&&&&&$&$&$&$$$$$$$$$XXX$$$$$$$$$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+xxXx+;;;+;;;:;++++++;;+;;.$+:+xXX$X$$++xX$&$$$$$$XXxXXXX$$$$$&&$$&$$$$$&&&&$&$$$$$&$&&&&$$&&$$$$&&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$&&$$$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XxxxXx+++;x+;;;:;+++++:++xxXXx++;+X$$$X:+xxxxxx++xXXxxX$X$$$$&&&$$$$$$$$$&&&&&$$$$$$&&&&&&&&&&&$$&$&&&&$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$xxXXx+++++++;;++;xx++:x++XX$x;;;+++X$&&x+xx++++xX+XXXXX$&&$$$$$$&&$$$$$&&&&&&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&$$&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxXXXxx+++;++++x++x+;+XX+XXX+;;+;+;XX$$$XxxxX$XXXX$$$$$$&$$$&$$$&&&$$X$$&&&&$$$$$$$$$$&&&&&&&&$&&&&$&&&&&&$&$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&$$&$$$&&&&&$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxXXxx++;;+;+x+x+x++xXX++$$++++;;+X$$$$$XXX$X$$XX$$$$$XX$X$$$&$$$$$$$&&&&&&$$$$$$$$$$&&&&&&&$&&&&&&$$&&&&&$$$$$$$&$$$$&&$$$&$$&&&&&&&&&$&&&$$$&&&$$&&$$&X$$$$$$$$$$$$$$$$$$$$$X$$X$X$$$$$$$$$XXxxxXxx;+;++++++++x+x+$+xxX$x;+++x+X$$$$Xx$Xxx+xxXXxX$X$XX$$XX$$$&X$$$&$&$&&$$&$$$$$$&$&&$&&&&$&&&&&&&&$&&&&$&$$$&$$$$$$$$$$$$$&&&&&&&&&$&$$$$&&$&&&&&$$&$$$$$$$$$$$$$$$$$$$$$$$XXX$$$$$$$$$$X+XXxxX+x;;;+x+++;++xxx$+x+X$$xx;;+++X$$$$XXXX$$$XXxXX$$X$$X$$XX$$$XX$$X&&$&&&$$$$$$$$$$$$&&&&&&&&&&&&&&&$$&&&&$$$$$&&$$$$$$$$$$$$&&&&&&&&&$&&$&$&&&&&&&&$&$X$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X+++X;+++;++x;+;+++xx+$X+xXX$$x+;;+++XX$$$$XXX$$$&XxXX$&$$XXXxXXX$&$$$$&&&$&$$$$$&&&$$$$$$$&&&&&&&&&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$$&&&&&&&&$&&&&$&$&&$&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$x;+Xx++;+;x+;++++++xxXXXxxX$$X+;;;+;;X$$$$$$$XXXX$$$Xxx$$XXxXxxXXX$xX&&$&$$$$$$$X$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&&&&&&&&&&$$$&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$Xx;x+;+x++xxxx+++++xx$$x$X$$Xx+;;;+;+X$$XX$XX$$X$$$$$XxXXX$XXx+x++xX$$$$&$&$$$$XXX$$&$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&&$&&$$&$$$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$XX++xxx:xxxXxxx++++xx$$XxXX$$Xx;;++++;X$XXXXXXXXXXXX$$$X;+xxXxxx+xXxXX$$$$$$$$$$$XXx$XXXXX$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XXXx+xXxX+XxxX;++;xX$XXXXX$$$$X+++XXxx$$$$$X$XXX$XXXXXxx+xXXx++++x+xxXXXXXX$XX$$X$XXXX&x$$$$X$X$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$XX++xxxxxXx++x;;+X$$$+XX$$$$X$XXXxXXxxXX$X$X$XX$XXxXXXxxXXXXxXx+++xx+XXxxxxxXXXX$$$X$XXX$$X$X$&$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&&&$$$$$$$X$XXX;++++;+;++++xXXXxxx$$XXXXXXxXXxXXXxxX$X$$$XXXxXXXXxXXX$Xx+x;+xx+;x;;+;+xxXXXXX$$$XXXxXxXXXXX$$$&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$&$$$$$$$X$$XxX+++;;;;++:xxXXXx+++;xxXXxXXXXX$XxxxXX$XXX$XXXXXXXX$X$$XXXx+;;Xx;;x+xX+xXx++Xx$X$$XXXxXXXXxxXXX$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&$$$$XX$$$$$$$$$$$$$$$$&$$$$$$$X$$$XxXx;++;xX;x$x+++x+++;++xxx+xXXXXXxxXX$$$X$$$XX$XXXXX$XX$X+;;;+X;+++x+xx+;X+x+x;$$$$X$$xX$$XXx$$$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$X$$X$$$$$$$$$X$$$$$$$$$$$$$$$$Xxx+xxxxXX+$Xx;++:;+;+;++++xxxx++XXXXXX$$$XXXX$XxX$X$XX$X$x$&$X.+;;++;;xx+x+x++x+$xx$$$X$XXX$&$X$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X$Xx+x+x+Xx;+;;;;+;+++;;++;++++++++++;X$XX$XXxXXxx+X$X$X&$XX$x+;:;:$x.:;++x+++xxxxxXXX$X$Xx$XxX&$X$$$$$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$X$$$$$$$$$$$$$$$$$$$XXXX+xxx+x;++;;:;:;;;;;;;;;++++;++;xxXxxxxXXXXX$XXXXXXXXXxX$X+++;;;;++$$x:;:;;;++xxx+xX$XXXXXX$xXX$X$$$&$$&&$$&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$XXxxX++++;;;;;;;;;:+;+xxx;++;;++++++++xxxxXxxXxXxXXXXX$$X$$$$x;;+;::;++x::::::+$XX++xXxxXXX$xxXXXX$XXX$$$&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&XXXXxxXXXXXXXXXXXXXX$XXXXxXxxxx++++x++;;;+:+x;:::;+xX$xxx+;+x+Xx+++xxXxxxxxxX$$$$$XXXX+;+;;:::;$:;::.:;;++x$$xx++xXXXXXXX$X$xX$$X$&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$&&&&&&&&&xXxxxXxxxxXxxxXxxxxxxXxXXxxx+x+++++++x++;;;;;;;++++xXXX$$$+x+++xxxxxxxxXXxx+xx+xxX$$;+;+;::.:;++::::.:;::;;x$$xXxX$$X$xXXx$XX$$XX$XX$$$&$&&&&&&$&&&&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&$$$&&$$$$$$&$XXXXXXXXXXXXXXXxXxxXXXxXXxx+xxx+++++x+;;;::;:;;;x;Xxx$$$$$$$X+xXxxxXxxxxXXx+xxx+++x+;;+;+;+;;;x+;::::;;::;;+X$$$XX$$$$XXXX$$XXXX$$$$$$$$&&&&&&$&&&&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&$&$&$$&&&$&$XXXXXXXXXXXXXXXXx+xxxXXXxxxxxx+x++x+x;;;;:;::;:;+X+XX$$$$$$$$$XX+XXXXxxXxxx+x+x+++++++++++;;;+X+;;::;;+;x:;;xX$$X$$X$XX&$$$X$XXXX$$$$$$$&&&&&&&$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&&&&&$$$$$XXXxXXXXXXXX$$XXXXXXXxx$xxxxxx+xx+++++;:;;::;;;++xx$X$XX$$$$&&&$$xXXXX$XXXXxx+xxx+XXXxxx++++x+X++;;;++x;xX$XxX$$$$$&$$$&$$$XX$$X$$$$$$$&$&$&&&&$$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$&$$$$$$$$XXxXXXXXX$XXXXXXXXXXXxx$xxxxxxxxx+++;$;;::;;;;;;+xx$$$$$$$$$$&$$$&$XXxxx$&$X$xXX$XXxXXX++;;;XXX;;++x+;XxxX$$&$$&$$X$$&$&&&$$$X+X$X$$$$$$&&&$$&&&$&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$&$$$&&&$$$$$XXXXXXXXXXXXXXXXXXXx+xX$+xxxxx+++++;;$;;;;;;;;+xxXX$$$$$$$$$$$$$$$$$$XXXxxXXX$$$$XXXXXXx+;;x$$xx+xxxxxx++xxX$&$&&$XX$$$$&&&$&&&$$&$$$$$&&&$$&&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$&$$$$&$$$$$$XXXXXXXXXXXXXXXXXXXX+xxX;x+xx+++++;++X+;++;+++xxxx$$$$$$$$&$$$$&&&&XXX$X$XXXXxXxXxXXXx++++X&&&XxXXXXXXXXxx$X$&&$&&$$$X$$X&$$&&&&$$$$$&&&&&&$&&&&&&&&&&&&&&&&&&&&&&&$&&&&&$&&&&&$$$$$$$$$$$$$$$$xXXXXxxXXXXXXXXXXXXx+xXx+++++;+++;+:$XX;;;xxX++xXX$$$$$$$$$$$$&$$$$$$$$$X$$$$XXXxXXx+x++x&&&&&&XXXXXxxxXX$$X$&&&$$&$$$$$&&$$$&&&&&&&&&&&&&&&&$&&$&&&&&&&&&&&&&&&&&&$$$$$$$$$$$&$$$$X$$$$$$$$$$$xxxxxxXXXXXXXXXXXXxx+x$x+++++++x++xxX$X+;+;++++xXXX$$$$&&$&&$&$$$$$$&$$$$X$$X$$&$$$$$$$$$&&&$$$X$$$XXXxXxx$X$&$$$$&&$$$$$&$&$&&&&&&&&&&&&&&&&&&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$&&$$X$$$$$$$$$$$xxx+xx+xxxxxxxxxxxxx+xX++x++x+++++;$X$$+;;+;;+xxxX$$$X$&&$&&$$$$$&&$&$&$$$&xX$&&&&&$$&$$&$$$$X$$x$&&&&$$$$$X$X&$$$$&$$$X$$$&$$$$&&&&&&$&$&$&&&&&&&&&&&&&&&&&$&&&&$X$$$$$$$$$$$$$$$$$$$$$$$$$$X$+++++xxxx+x+++xxXxxx+xXX++++x+x++;XX$X$x;;;;;+xxxxX$$XX$&$&$&$&$&$$$$$$$$$$&x$&&&&&&&&&$$$$$XXXXX$$$$&&$&&$$&$$$$$$$&$$X$X$&$$$$&&&&$$&$$$$$&&&&&&&&&&&&&&&&$&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$X++++++++xx+++x++xxxxxxXXX;;;;;+;x$$$$X$;;;;;;xxxxx$X$$$$&$$$&&$$$$$$$$$$&$$$X$$&$&&&$$$&$XXXXxXXXx++++;XXX$$$$$$$$$$$$$$$X$$$&&&$&&$$$$$$$$$&&$&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$X$X$$$$$X$X$++++;+xxxxx+xx+xXx+xXXxxX$$X$$$X&$$$$$;;;++xxxxxxxxX$$&$&&&&&$$$$$&$$$$$$$$$X$$&$&&&$$&&$$XXXxx$Xx+++x+xxXXX&x&$$$$$$$$&$$X$$$$&&$$$$$$$$$$$&&$&&&&&&$$&$$$$$$$$$$$$$$$$$$&$$$&$$$$$X$$XX$$$X$$++x++xx+xxxxxx++X+xXXxxxxxxxX$$Xx$$X$+;;;+;::;;;xxxX$$$&&$&&$&$$$$$$$$$$$$$XXX$&$&$&$$$$XXXXxx$xX;+x+x++++X$X$X$$$$$$$$&$$&$$$$&$&$$$$$&&&&&&&&&&&&&&$$$$$$$&$$&&$&$$$&$$$&$$$$$$$$XXXX$$$$$$$$++;+;++x+xxxx+xx+xXxXXxxxxxXxXXXXxxXx;+;+;;+;+xxxxXX$$$&&$&&$&$XXX$$$X$$X$$$xX&&&&$&$$$$XXxxxXX+x;+;;;++++xX$$X$&$$$X$$$&$$$&&&$$&&$&&&&&&&&&&&&&&&&&$$$&$$&$$$&&$&$$$$$$$$$$$$$$$XXXX$$$X$$$$X+++;+++xxxxx++xx+xXxxxx++Xx+xxXXXxxx;;;+++;+;;+xxxXXXX$$&$&X&X$X$$$$$$$XXX$X;X&&$&&$$$$XXXxxxXxx++;;;;:;;;+XX$x$&$$$XX$$$&&&&&&&$$$$$&&&&&&&&&&&&&&&&$&$$$&$$&X&&$&$$$$$&$$$$$$$$$$$$X$$$$$$$$X++;++;++++++x+++++xx+++x+x++++xxxxx+;;++++;++;;;+xxxx$$$$&$$$$XXXxxx+XX$$X$X+&&&$&$&$X$XXXx+XXXx;+++;;;xxXxXxxxX&$&&$$$$$&&&$$&$$$$$$$&$$&&&&&&&&&&&&&&$$$&$$$$$$$$$$$$X$XXX$$X$$$$$XXXxXxXX$$X;+;;+;;++;x+++++;+x;;++x;+++++++x+x;;;++++;;;;;;;;++XXX$$&$X$$X$XXXXX+x+X$x++$&$$$$$$$XXxXxxxxX+x;xxx+++;+xX$XXX$&&$X$$$&&&&$$$&$$&&$$&&&&&&&&&&&&&&&$$&$$$$$$$$&$$$$XX$$$$$X$XXX$XXXX$X$XX$$$$;+;;;;;;;;+;x+x;;+x;+++++++xx+xxx++::;+;;++;;;;;:;++++xXX$$$$X$$Xxxxx+xxx+X&&$$$$$XXxXxxxxxxXxXxx++;;++++XxXX$$xX$&&$&$&&&&$&&&&$$$&$$&&&$&&&&&$$&$&$$$$$$$$$$$$$X$X$$$$$X$XXXXXXxxXXx$XXxXXXXX;;;;;++;+;+;+;+;:;+;;;;;;+;;+;x+++x:;;+;::;;;::;;:;;+xXX$&$$$XXXxxxxxxxxx$&$&$$$XXXxXXxxxx+xXXXXxXxxxxXXXxX$X$$XX$&&$&&&&$$&&$&$$$&&&&&&&$$&&$&$$$$$$$X$$X$$$$X$$$xxXxxXxxXXXxxxxxXx+xxxx+x+xxx;;;;+;+;+;x;+++;;++;;;;;;;;;++++++x+;;+;;:;;;;:;:;:;;++x&&$$$x+++++++;+++XX&&$$XXXXXXxxxxx+++XXxXxXXX$XXXXXXXXX$$$$&&&&&$&$$$$$$&&&&&&$&$&$$$$$$$$Xx$$$$X$X$XXXXxXXXxxxxXxxxxxxx++xx+xxxxxxx+xx+;;;;+;;;;+;;++;:+;++;;;;+;+++++;++++;+;;;;;;;;;;+++;;+X&$X$Xx++++++x+++:+$$$$$XxxXxxxxx+xx++XX$XXXXXXXXXXXXX$X$$$$&$$&$$$$$$$$&&&&&$$$&$$$$XXXxXXXxXXXXXxXxXxXXxxxxx++xxxxxx+xx++++++xx+xx++xx+++;;;;;++;;+;+;+;+++;;;;;+;;++++++++X+;;;;;;;+;xx;:;;xX$&xxxx+;+;;+++x+;x&$$&$$xxxxx+xxx++;+x$XXXX$$$$$$$XX$X$$$$$$&&$$&$$$$$&&&&&$$$$XXXXXXXxXxXXXxx$+XX$xxxxxxx+x++x+x++++++;;+;+++x+++x++Xx;;;;;;;;;;++;++++;;;;;+;;;;++++x++;;+x;;+++++++x+x;;;+X&&$xXx;+++++;;++++$&$&XX$XxXxxXxxx+X;x+X$XxXX$$XXXxXX$$$$$$$&&$$$$$&&&$$$$$$$$$XXxxxx+xxx+xXxxXx+++x+xxxxxxxx+x++;+++xxxx+x++x+x+++++x+x;;;;;+;;+;;::+x+x;;;++;;:++;;+++;+x;xx++x:+x++x$+X;;;XX$$$xXX++;+;;+x;;;+&$&$XXx+;xxxxx++++;+xx+$XXXXXXX$XXX$$$$$$$&&$$$&&$$&$XXxx+xXx+;+xx+xx++x+x+;x+xx;+x++xxx+;;x;x+++++++++++x+xx++++++x+x;++++;;;+++;;++x;++;++x++;+++++x+++x;++X$++++;++++$++XX&X$X+xXXxx+xx+;:$$&$&XXxxx+x++;+;;+;;;+;+;x$XXXXXXXXXX$$XX$&$&&$&XXxXXxxxx+xxxx++;++;++++++;xx++x;+;++;+++++;;;++;++++++++++;++++++++++;+;xxx++;;x;+++x++x+;x++x;;+xx+++++;+++x;+++X+X&$$$XX$$X$XXXX$XX+;;++X$$&$$XXxxxxx+xx+x+x+;+;+++++++x&XxXXXXX$XX$&$$X$XXxxxXx;+x+++x++++x+++;+;;+;;++++++;+++++;;;;+;++;;;;;+++++++++++++++++++++;++;+;++++++xx;:;;+;;+;x+++xx+++++;;+;++++++++;+xxx+x$XxXXXxXXXXXxxxxxxxx+++;+;+++++++;;;+;+;++;++;++xxxxx+$XX$XX$xxxxx+xx+++xxxxxx+xx+++;xxx+x++xxxxxxx+++;++xx+++++++++++++;+++++++++++++++;;;:;:;;;;+x+;xx;;;;;;;:;;;;;;+++++++;++x+++xx+++++;;;;+++++++xx++++++++++xxx+x+++++;+++++;;+++;++xx+++;++++++++x+x++x+++++;++++;++;;;;;;;;;+x;++;+;;++;++++++;;+;;;++xxxXXX+x+++++++x+x++++;+++;+;;;+;;;;;+;xx+;;;;;;;;;;;;;;+x++++++++++++xx++x+;+++;++;+++++x+++++++;++;;;;;;;;;;;;;++++++++++;++++x++++xxx++xx++++++++;++++++++++;;++;;;;;+;;;;;;;;++;;+;++;++;++++++++x+++x+;++++++++x+X;+;;;;;;;;;;;x+XX+:;;;;;;;;;;+;;+++;++;+++++++++++++;;;+;+x+;;;;+++;+;+++;;+;;+;;+++++++++;++++++;++++++++++++++++++++x+++++++++++++;+;;;+;+;+;+;+;;;+;;;+;+;;;+++++;xx+xx++xxx+Xxxxxx++xxxxxxx;+++x;;;;;;;+;+xx;;++;+;+;;;++++++++;;;;+++++;++++++++++;+;;;;;;;+;++++++;+;;;+;;+;+;+;;;+:;;+;;;++++x+x++++++;;++++++++++++;+++++;;++++;;;;;;++;++;;+;+;;;+++++++++;++++++xx+xxxxxxx+xXXXxxxxXx+++++;;;++;+;;+++++++;;;;;;+;+++++++++++x+++;xx++x+x++;+++;+++;;+;;;;;;+;;:;;;;;;;;;;;+;+:;;;;+;+++;+++++;;+;;;++++;;;;;;++++++++++;+;;;;++;+++;+;;;+;;;+;+++++;x+x++++x++xx++x+xxx+xXxxxxxxxxxxx+x;+;;;;;;;+xx+x+++;+;;;;;;+;;+++x;+;++x+;;;++x+;+++++++;;++++;;+;+;;+;;;;;:;;;;;;+;;;;:;::;;;:::;:;;;;;;::;;;;;;;;;;;;;;;+;+++;+++;;;;;;;;++;;;;;;+;;+++++++;+++xx++x++xxxxxxxxx+Xxxxxxxxxxxx
at txn 0xe71288757f7b75e24d532fa737b81ee357e5b6268db7300a90a32ed174e15fb8 Sep-11-2025 06:21:47 PM UTC (9 hrs ago)