Dynamic Anémic Cinema

Ivan Argote 2012 Site web http://ivanargote.com/web/dynamic_anemic_cinema

Dynamic Anémic Cinema

Pour visiter Dynamic Anémic Cinema, le plugin Adobe Flash doit être activé sur votre navigateur.

Ouvrez le site dans un nouvel onglet

Pied de nez à l’Histoire de l’ART
En 2012, avec Dynamic Anémic Cinéma, l’artiste franco-colombien, Ivàn Argote confrontait une fois de plus son Art à celui de ses pères. Non plus avec la rage de Retouche, où Argote tagait de diagonales un vrai Mondrian (protégé par un verre) devant les visiteurs effarés d’un musée - mais en confrontant le média digital et interactif avec le célèbre film de Marcel Duchamp : Anémic Cinéma tourné en 1925.
Ce qui semblait être à l’époque un sacrilège de plus, apparait au contraire comme un véritable coming out : Ivàn Argote y dévoile que sa jeune œuvre, conceptuo-iconoclasto-touche à tout, doit tout, aux nouvelles technologies médiatiques comme à Marcel Duchamp.
En effet, en 2012, l’œuvre émergente d’Argote est une suite d’actions qui s’égrainent sur les réseaux comme dans les lieux public en un ensemble de performances confrontant sa poésie urbaine à un public de non-initiés : Un générateur de pierre-feuille-ciseau via des sites de partage d’images, une horloge qui donne l’heure en euros ou en dollars, l’heure en temps réel dans des petites villes paumées de la planète, une sculpture de pigeon sur un trottoir, un camion de policiers s'agitant avec des bruits d’ébats érotiques, une série de photographies de statues équestres sans cavaliers, autant de provocations sensibles destinées au passant.
Lorsqu’en 1925 le père du ready-made réalise son film expérimental Anémic Cinéma, c’est pour se moquer du rotatif linéaire cinématographique qui draine les foules de l'entre deux guerres. A la suite de ses machines optiques (Rotative plaque de verre, 1920 et Rotative demi-sphère, 1925), Marcel Duchamp déclarait vouloir tourner un film plutôt que de continuer la fabrication de ces machines tournantes.
En 2012, avec Anémic Dynamic Cinéma, Argote poursuit la réflexion de Duchamp et propose aux intrernautes de faire tourner dynamiquement au propre comme au figuré ce film… dans tous les sens l’écran d’abord, puis le film original et ses 8 minutes 25 de pellicule 16mm noir et blanc : L’accélérer ou le ralentir, en avant et en arrière, et ce, en utilisant son ordinateur personnel.
A partir de la réflexion de Marcel sur les technologies médiatiques de son temps : le cinéma, Ivàn entame une vrai dialogue avec le film de Duchamp avec les médias de son époque : Internet, les réseaux et cette possibilité donnée au spectateur d’être acteur de son spectacle. Un spectateur qui ainsi échappe au point de vue unique et passif qu’Anémic Cinéma usait sans vergogne.
En cela Argote donne une nouvelle dynamique à la posture du spectateur duchampien “qui fait le tableau”. Et tel Douglas Gordon qui avec 24 h Psycho redonne non pas à voir, mais à vivre, pendant 24h les deux heures du Psychose d’Alfred Hitchcock, Ivàn Argote repense le film de Marcel Duchamp. Il en supprime la linéarité temporelle cinématographique, et, en parfait sacrilège respectueux, réinventent les machines optiques Duchampienne dans leur temporalité et leur rapport au spectateur, en créant à partir d’un film expérimental, une véritable œuvre expérimentable.

JJG/La revue

.................*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.....................+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.....................:#@@@@@@@@@@@@@@@@@@@@
.................=+*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*++===......................=++*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*++*##@@@@@@@@@@@@@@@@@@@@@@@@@@@@#**++==-.....................-++*##@@@@@@@@@@@@@@@@
........................+#@@@@@@@@@@@@@@@@@@@@#*.......................................+#@@@@@@@@@@@@@@@@@@##*-............=##@@@@@@@@@@@@@@@@@@@@#:......................................=#@@@@@@@@@@@@
...........................#@@@@@@@@@@@@@@@@@@:.........................................:#@@@@@@@@@@@@@@#=....................+@@@@@@@@@@@@@@@@@@=..........................................#@@@@@@@@@@@
............................+@@@@@@@@@@@@@@@@+...........................................#@@@@@@@@@@@#=........................-#@@@@@@@@@@@@@@@#...........................................*@@@@@@@@@@@
.............................*@@@@@@@@@@@@@@@+..........................................+@@@@@@@@@##:...........................-#@@@@@@@@@@@@@@#..........................................-@@@@@@@@@@#-
..............................#@@@@@@@@@@@@@@#.........................................+@@@@@@@@@*...............................+@@@@@@@@@@@@@@#:........................................-#@@@@@@@@#:..
...............................#@@@@@@@@@@@@@@=.......................................*@@@@@@@#+..................................*@@@@@@@@@@@@@@+.......................................=@@@@@@@@#:....
...............................+@@@@@@@@@@@@@@*......................................#@@@@@@#*.....................................#@@@@@@@@@@@@@@......................................*@@@@@@@#:......
................................#@@@@@@@@@@@@@#....................................=#@@@@@@#.......................................+@@@@@@@@@@@@@@+...................................:#@@@@@@#-........
................................:#@@@@@@@@@@@@@*..................................*@@@@@@#-.........................................#@@@@@@@@@@@@@#..................................+@@@@@@#=..........
.................................*@@@@@@@@@@@@@@:...............................=#@@@@@#=...........................................=@@@@@@@@@@@@@@=...............................:#@@@@@#*............
.................................-@@@@@@@@@@@@@@*..............................#@@@@@@*..............................................#@@@@@@@@@@@@@#..............................*#@@@@@#:.............
..................................*@@@@@@@@@@@@@#............................+@@@@@@#................................................=@@@@@@@@@@@@@@+...........................-#@@@@@#=...............
...................................#@@@@@@@@@@@@@+.........................=@@@@@@#-..................................................#@@@@@@@@@@@@@#..........................#@@@@@@+.................
...................................*@@@@@@@@@@@@@@:......................:#@@@@@#+....................................................-@@@@@@@@@@@@@@=.......................*@@@@@@*...................
...................................-@@@@@@@@@@@@@@+.....................*@@@@@#*.......................................................#@@@@@@@@@@@@@#.....................=@@@@@@#:....................
....................................*@@@@@@@@@@@@@#...................+@@@@@@#:........................................................=@@@@@@@@@@@@@@=..................-#@@@@@#=......................
....................................:#@@@@@@@@@@@@@+................-#@@@@@@=...........................................................#@@@@@@@@@@@@@#................:#@@@@@@+........................
.....................................*@@@@@@@@@@@@@#..............:#@@@@@@+.............................................................=@@@@@@@@@@@@@@-..............*@@@@@@#:.........................
.....................................=@@@@@@@@@@@@@@+............*@@@@@@#................................................................#@@@@@@@@@@@@@#............+#@@@@@@-...........................
......................................#@@@@@@@@@@@@@#..........+@@@@@@#-.................................................................+@@@@@@@@@@@@@@=.........-#@@@@@@+.............................
......................................-#@@@@@@@@@@@@@=.......=#@@@@@#+....................................................................#@@@@@@@@@@@@@*.......:#@@@@@@*...............................
.......................................*@@@@@@@@@@@@@#.....:#@@@@@@*......................................................................+@@@@@@@@@@@@@#-.....*@@@@@@#:................................
.......................................=@@@@@@@@@@@@@@+...*@@@@@@#:........................................................................#@@@@@@@@@@@@@#...+#@@@@@#-..................................
........................................#@@@@@@@@@@@@@#.+#@@@@@#=..........................................................................+@@@@@@@@@@@@@@=-#@@@@@#*....................................
........................................-@@@@@@@@@@@@@@@@@@@@@+.............................................................................@@@@@@@@@@@@@@@@@@@@@#......................................
.........................................#@@@@@@@@@@@@@@@@@@*...............................................................................+@@@@@@@@@@@@@@@@@@#-.......................................
.........................................=@@@@@@@@@@@@@@@@#:.................................................................................#@@@@@@@@@@@@@@@#+.........................................
..........................................#@@@@@@@@@@@@@@=...................................................................................+@@@@@@@@@@@@@@*...........................................
..........................................=@@@@@@@@@@@@@@*...................................................................................:@@@@@@@@@@@@@@#...........................................
...........................................#@@@@@@@@@@@@@@:...................................................................................+@@@@@@@@@@@@@@=..........................................
...........................................+@@@@@@@@@@@@@@*....................................................................................#@@@@@@@@@@@@@#..........................................
..........................................+#@@@@@@@@@@@@@@#..................................................................................=#@@@@@@@@@@@@@@@=.........................................
........................................=#@@@@@@@@@@@@@@@@@+...............................................................................:#@@@@@@@@@@@@@@@@@#.........................................
......................................:#@@@@@@@@@@@@@@@@@@@#..............................................................................*#@@@@@@@@@@@@@@@@@@#-........................................
.....................................*@@@@@@#+@@@@@@@@@@@@@@+...........................................................................+#@@@@@#+#@@@@@@@@@@@@@#........................................
...................................*@@@@@@#-..#@@@@@@@@@@@@@#.........................................................................-#@@@@@@*..+@@@@@@@@@@@@@@=.......................................
.................................=#@@@@@#+....:#@@@@@@@@@@@@@=......................................................................:#@@@@@@#.....#@@@@@@@@@@@@@*.......................................
...............................-#@@@@@@*.......*@@@@@@@@@@@@@#.....................................................................*@@@@@@#-......=@@@@@@@@@@@@@#:......................................
..............................#@@@@@@#:........=@@@@@@@@@@@@@@=..................................................................*@@@@@@#=.........#@@@@@@@@@@@@@*......................................
............................*#@@@@@@=...........#@@@@@@@@@@@@@#................................................................=#@@@@@@*...........+@@@@@@@@@@@@@@-.....................................
..........................=#@@@@@@+.............-#@@@@@@@@@@@@#-.............................................................:#@@@@@@#:.............#@@@@@@@@@@@@@*.....................................
........................-#@@@@@@#................*@@@@@@@@@@@@@#............................................................#@@@@@@#-...............=@@@@@@@@@@@@@#.....................................
.......................#@@@@@@#:.................=@@@@@@@@@@@@@@-.........................................................+#@@@@@@+..................#@@@@@@@@@@@@@+....................................
.....................*@@@@@@#=....................#@@@@@@@@@@@@@*.......................................................=#@@@@@@*....................+@@@@@@@@@@@@@@:...................................
...................+@@@@@@@*......................-@@@@@@@@@@@@@#:....................................................:#@@@@@@#.......................@@@@@@@@@@@@@@+...................................
.................-#@@@@@@#.........................#@@@@@@@@@@@@@*...................................................*@@@@@@#-........................+@@@@@@@@@@@@@#...................................
...............:#@@@@@@#-..........................=@@@@@@@@@@@@@@-................................................+@@@@@@#+...........................#@@@@@@@@@@@@@+..................................
..............*@@@@@@@+.............................#@@@@@@@@@@@@@*..............................................+#@@@@@@#.............................+@@@@@@@@@@@@@@:.................................
............+#@@@@@@*...............................-@@@@@@@@@@@@@#-...........................................-#@@@@@@#:...............................#@@@@@@@@@@@@@*.................................
..........-#@@@@@@#:.................................#@@@@@@@@@@@@@#..........................................#@@@@@@#=.................................+@@@@@@@@@@@@@#:................................
........:#@@@@@@#-...................................=@@@@@@@@@@@@@@+.......................................*#@@@@@@*....................................#@@@@@@@@@@@@@#................................
.......*@@@@@@#+......................................#@@@@@@@@@@@@@#.....................................+#@@@@@@*......................................+@@@@@@@@@@@@@@+...............................
.....*@@@@@@@#........................................=@@@@@@@@@@@@@@*..................................=#@@@@@@#-.......................................:@@@@@@@@@@@@@@#...............................
...*#@@@@@@@=..........................................#@@@@@@@@@@@@@@=...............................=#@@@@@@@*..........................................*@@@@@@@@@@@@@@*..............................
.+@@@@@@@@*............................................*@@@@@@@@@@@@@@#.............................=#@@@@@@@#-...........................................:#@@@@@@@@@@@@@@=.............................
@@@@@@@@@+.............................................=@@@@@@@@@@@@@@@#..........................=#@@@@@@@@#..............................................#@@@@@@@@@@@@@@#:............................
@@@@@@@@#..............................................-@@@@@@@@@@@@@@@@#.......................*#@@@@@@@@@@-..............................................#@@@@@@@@@@@@@@@#-...........................
@@@@@@@@#..............................................*@@@@@@@@@@@@@@@@@#-..................-*@@@@@@@@@@@@@-.............................................-#@@@@@@@@@@@@@@@@#+..........................
@@@@@@@@@*...........................................:#@@@@@@@@@@@@@@@@@@@@#=.............:*@@@@@@@@@@@@@@@@#............................................*@@@@@@@@@@@@@@@@@@@@#*........................
@@@@@@@@@@#*=:...................................:+##@@@@@@@@@@@@@@@@@@@@@@@@@#*=:...-+##@@@@@@@@@@@@@@@@@@@@@#+-....................................=*#@@@@@@@@@@@@@@@@@@@@@@@@@##+-...................
@@@@@@@@@@@@@@@@@@-........................+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+........................:#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:............
@@@@@@@@@@@@@@@@@#.........................#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.........................*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.............
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
........................................................................................................................................................................................................
--------------===-----===-----------=--=-----=------=-----------------=-----=-=-------=-=--=----------------=---------=----------=------=+-----------------===-===---------------:----=+=---------------
----===----===-=-------==-===----=-------=--------==------------------------====------==--------------=-----=----------=+------------------------------------=----=-------====-=======+=+---------------
---=---=-==----===-----===----------------=----===-==++=----++**==----=------====-----------------======-+===---=-------+===+-----------------==---------=+=+-=---=------======-==--==-+----------------
-------==---=-------=----------------=----==-====+=+==+=+-+===========--=-=-=----====--===+=+:::--======-=++----------=-==--===-:::---------=-=--------=--++=--==-=-----------==-------:------+---------
---=--==-==-=----=--==----==--=------------=--=-=+==--+==-=------=-=-=---=---------=-=----=+=--::---------==----------=----------:::--------:=-=---=-------------=-==-------==-----==---------++=-------
---=-=---=-------------=--------=--------=------==+----+=+---=--=-===---=-----------------------:---------=--==--=-----==-=----=-----------------=--=-----------=========-------=---+=-------=::==----=+
----=-------==------:----------*+*+==-=-===-=--+=+------===-----------=-=-------------------==-------------=--+=--------------=-=---------=----------------------==-=====--------=-+=+----------------=-
===----=---=-=====-==--=-=---------==---==-----==-------+=+------------=----------------=======--::--------=-+===--------==-------=---------------------------------=-+=--------===-=-----------------=+
+*==--==-==-==+=-----------------------=------+=+--------+-------------=-----------===========-------------++------------=+--=--------===+----=----------------------+**=-------===---------------------
--=--=-=---====------------------------==------+---------+=+---------=----------=========+=+==-------------+==----------=-----=-----=--++---------------------------=-=-------======-----------------=--
-----=---------=-----------------------------+=+---------=++----------=======---==========+===--------------=-----------------==-----=------=============----------------=-----------=--------------++=-
-------------===+=---------------------------=+=----------------------====================-===-----========--=------------------=-----=---================----------=----------------------=---------+--
------------====-==-------------------------=+=-----------====------=-=========================--------==---===-------=---------------==-=====---==-----==-=+---------=--=------=--------=--------------
=-------------------------------------------+=+------------++------=--=========================------------==-==----------------+++=-----------==--=---=---+=+--------=---==-===--======--=-------------
--------------------------------*=-----------=--+===--------------=---=======+===========+======----------::---#**+-----==-=----=-=-----=---------=---=*----+--------==--=--==---==--++--===------------
-----=------------------------=**=--------====---++--------===-------========+==========+++=====------------=+-:+=-------==--------------------:--==+=------:---------=--------------=--==-=------------
-------------------------------========----++-------------==++===================================----:-----=+++-+==-==---------------------====-=----==----------------=---==-----------====------------
------------------------=-------=========--------------==========================================-------::---=::::::-==--------------=+==---==--==-----+-----------------------=----------===-----------
---------------------========--===========+=+--====--============++=-===============================---------------::-=------------+==++=--==---------=-==-----------==----+=--=-=----------==----------
-------------------========================+=================++=====-===================================--------------=------------+=-=--========-------==-===-==========-+=*---=------------=----------
------------------=======================++-=================++===-====================++==================--------------======-=====-+=---::-------=-----=-=-=--=------=====----:-----------===--------
--=====-----------========================+========*##*+================================+============================-----------------------------------==-==-----==-----=:----==----------==-=--=------
========----=-=====================================+**+=======-===========================================================-----------===============----:--=-----=-==---=-+---=----------=-----=---=----
=====-=+=+==+=+=-=======*+*+*==========+=+====================+=+======================-=====================+=+======================================--===-+=+----====-=***=-=----------===---=---=----
=============+=+=========++++===========++--==================++==============================================+======================================--==++====---====--=+++----------==---=-====-==----
===+++=-=------=+======================+=----============-==================-====--===========================-==================================-======--=-=-=-===----=======------==-=-------=-==-=---
======-========-=+=+=================-+=+==--========================+++===-=-==----==++====----=====================================++=======-------=======-=-----====--===+-:----=+++==--=-===+-=-=---
================-=+=+===================-=---===========================------==---===++======-==========================-----------=++=======--==----------=-+====-===+==+====+=+=====-----------==----
=================-==++===============+=+===--==================+++=======-----====-====================================--------------=------=====-------------:----====--=--=-==-----=---------------:-:
==================-+=+=========-=====-+=======++=========================-----===============+========================----=---=-=#*==-=====----===----------+-=++++-+-==++==+==+==+===:----=------------
=====+=============-+===============+=+-========================-==========================++=================+=+=====-==----==-=+=--------======----------------:-=-===========--==-=----------=-=-----
==================++=+===============+===========================+================+=+-========================+++-==----==-----=++---------=-===--==------------::-=+=+=========-==-==----=====----==---
==========++=========-=============+=+============--============+=+=================+=+=========================-============-==+==------==----==-----==-------------+==========-======---------=------=
====+++=================+=========+==============----============+=================--+=============-------=====-====---:-+-------------====-------=====-====-----================------==+------=-------
=========================+=======++=+============----============-==============----=-============-----------====------==--==-------=--==-=-----------====-=-+-+-===--========-==-:-----------------==--
===================-====-=+==---=+======+========----====================+=====-------===========--=---=--------=****-=---+--+---=-==+==----==-------=========+=====--========----==--------=======-=-=-
=========================--=++=+===-==++===========-=============+=+=====++====---------========---=------=-----=+==+------++=-----=++-----=----=-------==-=-:-=-====+====-+==--=--===----=------=---===
==========================--==++=--===============================+============----=++----======--===------====-=-----------=-----------------------------=====-==------==-===-==--==+=--=-----=-----===
============================-==-==================================-=============---+++-----===----=------==----+=+----------=---=----=------===-==---==-====--==---:--===+++++=+=-+=+=----------=--==---
================================================================================----=------------==--===--------+--=-=-==------------=-+**=--==-===-==--========----===-=-===-====-+=---==--------=-----
=========================--=======================================+=+===========----------------==-=-----------=-==---===---------=----=**--=-===----===***==--=--==-=---==---=====---====-=##*==---===-
-----------==============-=========================================+===========----------------=+=--------------------===-=++=-------=--=-----=---=--===+++===-===--==---==---===-===----==+***=--------
--------------============-========================================-===========---+=+-=-===-=====---------------------=--------------=#*------=====-----=++-=---------=--========---=---==-=------------
-------------------============================================================---=+=-=+=-----=-----=+==----------=-++--------=*+--===#+====----------==-=---=------------==--==------====--------------
:---:------:-----------======-----===============+*================+=+==========-----====--------------------=-----====-=====-+++-+=+--=-==---====-----=-----==+=============-------=--==---=--=--------
-=-=------===-=---------------------=============*+=*+===========================--:-===----===-------------===-+=+=-=---------===-+==------=-----=--=-----=--+=+===--=---=---------===-----------=-----
-----------:=------------------------=============================++=+==========-=+=--=----==---------------==---+=---::::-----------=-=----=-=--=--===-=------+-===-------------:==--=----------=---==-
-------==--=---------------------------============================+============-++=-=-=------==--===---------------=---==----===-=---===---------=--=--==--===-+++=---------==--=-=--==-=-===----------
----=--------=--=----=---==---------------========================-==++=========--=--=-----------=-----------=---------=------=-=------------------=====--=-==---===========-----===--=**+++----==------
=-=---=-----==---===---===-==-----------=--------------========================--::----====------------------=====-=----=--------:=---:-----------===--=-=====-=-=---==-----------++-------==---==------
===*+*+==--=------------=-----=======--==+------------------------===========--=+=+==-----==--------------------==---===-------====-==-----==-------------==--===------=-===---=-=++=-----====--------=-
----------=======------=+------=++++===-+=------------=--=-----------=++=-------=+=--=------=--===--====--======--------==-=--=-==+=-=--+--==--===-------------=-----=--==--=-----=--------=+-=-======-=
-------==-=--=-===========--=-=--------=---=====--------------===-------------------=-=---=--=++++=-===-===+=-+--+=+=-==========-+=+==--==---==-=-==-----=--------------=-------=------------==---------
-------=-==----=------------==---------=---=--==---=====------++++=----+==-=-=====-==-===-==-=-==-=---==----==---=+==--===-=---=--+-=-===------=====-------------=-----=--------------------==---=------
-----====-=-==---==-=--=-=-=---+=+----==-=---------==---------==-------++=-----++------++=--==---==+---==----------=---=-------==-------===----=----------------=-----++=----------------------==----===
---=-=--=-==--==-=====-===-----=-=----------===----=-======-------------+==--====-+**+:=---------=+-------=--------------====---------------=-------=-===---==-+=+=----+=---------=--=-------===--------
------==-=--=-=====-==------=------------======-==-=------===+=--+------+=+--==+=--------:---------===*+*--------------=--==-----------------------=-----==-----+=----------------=------------===---=-=
----=====---==-=-======---=--------------------=---=-----==---=---+=-----+==+===--=--=---------------=**+-------=--------==--------------===-------------=---===-------------=---==-----------======--=-
=--=+-==-==---==----==-==---------=--------=--------=---===---=-----+====:++++--------------------==---=-----------++-----------=+----------=------------=---=-----------------------------------------=
---==---=--------====--===-=------==------------------==-=----=------==++=-==--------------------------=----------=++=----------+=+----------------------=-----=------===-==--------------=-------------
-==--===-------==-==------=---------------------------*=++#*-------------+=------------------==--------------------==------------+------------------------==--------------------=+=-------=-------------
==---===------=-=----:--===-=-=---=--=--------=---------=++++--=------------=-----------------=--------=---=-----------==--====-------=---------------------------------------=-+=+---------------------
----=-----====-==-=---------====------------------=+=----===---------------------=-=--==--------------------------------==------------------------===---=----------=-----=-------=-===------------------
----------=---===---------------------------====--===---=-----------------=------=====-=------------=-------=--=----------------------=------------=----=--------==-----==-------:=-=--==---------------
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@####################################@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#*###################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########+*#########################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########==-=##*-=##=+=#=-+#########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########=+#=:+.==.#.##:==:-########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@##########=+#=:*.**=#.##-=#=*########*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#####################################*#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+++++++++++++++++++++++===========================----------------------------------------------------------------------------------------------------===========================+++++++++++++++++++++++
++++++++++++++++++++++==========================-------------------------------------------::::::::::::::::::-------------------------------------------==========================++++++++++++++++++++++
+++++++++++++++++++++=========================--------------------------------------::::::::::::::::::::::::::::::::--------------------------------------=========================+++++++++++++++++++++
++++++++++++++++++++=========================----------------------------------::::::::::::::::::::::::::::::::::::::::::----------------------------------=========================++++++++++++++++++++
++++++++++++++++++=========================--------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::--------------------------------=========================++++++++++++++++++
+++++++++++++++++=========================------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------=========================+++++++++++++++++
+++++++++++++++++========================----------------------------::::::::::::::::::::::::::::------::::::::::::::::::::::::::::----------------------------========================+++++++++++++++++
++++++++++++++++=======================----------------------------::::::::::::::::::::--------------------------::::::::::::::::::::----------------------------=======================++++++++++++++++
+++++++++++++++=======================---------------------------::::::::::::::::::----------------------------------::::::::::::::::::---------------------------=======================+++++++++++++++
++++++++++++++=======================--------------------------::::::::::::::::------------------------------------------::::::::::::::::--------------------------=======================++++++++++++++
+++++++++++++=======================-------------------------:::::::::::::::------------------------------------------------:::::::::::::::-------------------------=======================+++++++++++++
++++++++++++=======================------------------------::::::::::::::------------------------------------------------------::::::::::::::------------------------=======================++++++++++++
++++++++++++======================------------------------:::::::::::::----------------------------------------------------------:::::::::::::------------------------======================++++++++++++
+++++++++++======================------------------------::::::::::::----------------------==================----------------------::::::::::::------------------------======================+++++++++++
++++++++++======================-----------------------:::::::::::::------------------============================------------------:::::::::::::-----------------------======================++++++++++
++++++++++=====================-----------------------::::::::::::-----------------==================================-----------------::::::::::::-----------------------=====================++++++++++
+++++++++======================----------------------::::::::::::---------------========================================---------------::::::::::::----------------------======================+++++++++
+++++++++=====================----------------------:::::::::::---------------============================================---------------:::::::::::----------------------=====================+++++++++
++++++++======================---------------------:::::::::::--------------================================================--------------:::::::::::---------------------======================++++++++
++++++++=====================----------------------::::::::::--------------=====================++++++++=====================--------------::::::::::----------------------=====================++++++++
++++++++====================----------------------::::::::::-------------=================++++++++++++++++++++=================-------------::::::::::----------------------====================++++++++
+++++++=====================---------------------::::::::::-------------===============++++++++++++++++++++++++++===============-------------::::::::::---------------------=====================+++++++
+++++++=====================---------------------::::::::::------------==============++++++++++++++++++++++++++++++==============------------::::::::::---------------------=====================+++++++
+++++++====================---------------------::::::::::------------=============++++++++++++++++++++++++++++++++++=============------------::::::::::---------------------====================+++++++
++++++=====================---------------------:::::::::------------=============++++++++++++++++++++++++++++++++++++=============------------:::::::::---------------------=====================++++++
++++++=====================--------------------::::::::::------------============++++++++++++++**********++++++++++++++============------------::::::::::--------------------=====================++++++
++++++====================---------------------::::::::::-----------============++++++++++++****************++++++++++++============-----------::::::::::---------------------====================++++++
++++++====================---------------------:::::::::------------===========+++++++++++********************+++++++++++===========------------:::::::::---------------------====================++++++
++++++====================--------------------::::::::::-----------============++++++++++*******########*******++++++++++============-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++******############******++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++*****######@@######*****++++++++++===========-----------::::::::::--------------------====================++++++
+++++=====================--------------------::::::::::-----------===========++++++++++*****#####@@@@#####*****++++++++++===========-----------::::::::::--------------------=====================+++++
++++++====================--------------------::::::::::-----------===========++++++++++*****#####@@@@#####*****++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------===========++++++++++*****##############*****++++++++++===========-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------============++++++++++******##########******++++++++++============-----------::::::::::--------------------====================++++++
++++++====================--------------------::::::::::-----------============+++++++++++*******######*******+++++++++++============-----------::::::::::--------------------====================++++++
++++++====================---------------------:::::::::------------============+++++++++++******************+++++++++++============------------:::::::::---------------------====================++++++
++++++====================---------------------::::::::::-----------============+++++++++++++**************+++++++++++++============-----------::::::::::---------------------====================++++++
++++++=====================--------------------::::::::::------------============++++++++++++++++******++++++++++++++++============------------::::::::::--------------------=====================++++++
++++++=====================---------------------::::::::::------------=============++++++++++++++++++++++++++++++++++=============------------::::::::::---------------------=====================++++++
+++++++====================---------------------::::::::::-------------=============++++++++++++++++++++++++++++++++=============-------------::::::::::---------------------====================+++++++
+++++++=====================---------------------::::::::::-------------==============++++++++++++++++++++++++++++==============-------------::::::::::---------------------=====================+++++++
+++++++=====================---------------------:::::::::::-------------================++++++++++++++++++++++================-------------:::::::::::---------------------=====================+++++++
++++++++=====================---------------------:::::::::::-------------===================++++++++++++++===================-------------:::::::::::---------------------=====================++++++++
++++++++=====================----------------------:::::::::::--------------================================================--------------:::::::::::----------------------=====================++++++++
+++++++++=====================----------------------:::::::::::--------------==============================================--------------:::::::::::----------------------=====================+++++++++
+++++++++=====================-----------------------:::::::::::---------------==========================================---------------:::::::::::-----------------------=====================+++++++++
++++++++++=====================-----------------------:::::::::::-----------------====================================-----------------:::::::::::-----------------------=====================++++++++++
++++++++++======================-----------------------::::::::::::------------------==============================------------------::::::::::::-----------------------======================++++++++++
+++++++++++======================-----------------------::::::::::::---------------------======================---------------------::::::::::::-----------------------======================+++++++++++
+++++++++++======================------------------------:::::::::::::-------------------------==========-------------------------:::::::::::::------------------------======================+++++++++++
++++++++++++======================-------------------------:::::::::::::--------------------------------------------------------:::::::::::::-------------------------======================++++++++++++
+++++++++++++======================-------------------------:::::::::::::::--------------------------------------------------:::::::::::::::-------------------------======================+++++++++++++
+++++++++++++=======================--------------------------:::::::::::::::----------------------------------------------:::::::::::::::--------------------------=======================+++++++++++++
++++++++++++++=======================---------------------------:::::::::::::::::--------------------------------------:::::::::::::::::---------------------------=======================++++++++++++++
+++++++++++++++========================---------------------------:::::::::::::::::::------------------------------:::::::::::::::::::---------------------------========================+++++++++++++++
++++++++++++++++========================----------------------------:::::::::::::::::::::::------------------:::::::::::::::::::::::----------------------------========================++++++++++++++++
+++++++++++++++++========================------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------------------------========================+++++++++++++++++
++++++++++++++++++========================-------------------------------::::::::::::::::::::::::::::::::::::::::::::::::::::::-------------------------------========================++++++++++++++++++
+++++++++++++++++++=========================---------------------------------::::::::::::::::::::::::::::::::::::::::::::::---------------------------------=========================+++++++++++++++++++
++++++++++++++++++++==========================-----------------------------------::::::::::::::::::::::::::::::::::::::-----------------------------------==========================++++++++++++++++++++
+++++++++++++++++++++==========================---------------------------------------::::::::::::::::::::::::::::---------------------------------------==========================+++++++++++++++++++++
++++++++++++++++++++++===========================------------------------------------------------------------------------------------------------------===========================++++++++++++++++++++++
++++++++++++++++++++++++===========================--------------------------------------------------------------------------------------------------===========================++++++++++++++++++++++++
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
******************************************...***********************************+..+**************************************..=******************************..:******************************************
******************************************...*********************+*******++****+..+*+*************+****+*****************..=*+*******++*********+*********..:****+*************************************
******************************************...*****..:*+..-*=..*:......*+......-*+.......+*****=...........:*...**-..******.......+*=......+*.......:**:......:*-......**********************************
******************************************...*****+..+....+..-**+*+-..+=...-+***+..=**..-*****=..+*-..+*-..*+..+*..=******..-**..:**+**=..-*...**-..*-..***..:*...:=+***********************************
******************************************...******:....-....**...::..+*+:.....*+..+**..-*****=..+*-..**-..**:..:..*******..=**..:*:...-..-*...**-..*:..***..:**=.....=*********************************
******************************************...*******...=+...=*+..-+...+-..=+-..*+..+**..-*****=..+*-..**-..***....+*******..=**..:*..:+-..-*...**-..*+...=:..:*..:++..:*********************************
******************************************-:=*******+:-**=:-***+...+-:+*+-...=**+::***-:+*****+::**+:-**+:-***+..=********::+**-:=**-..==:-*=:=**+:-***-..==:=**=...:+**********************************
************************************************************************************************************=....***************************************************************************************
************************************************************************************************************+==*****************************************************************************************
********************************************************************************************************************************************************************************************************
***********************************************************************************************************++*******************************************************************************************
**********************************************************************************************************=..*******************************************************************************************
**************************************************************=...+**:.+***:.+*+:..-***-.=..:.:***+.:*****=..=..:+***+:..:+**+..***:.+*-.=:.-***********************************************************
************************************************************+...=...*:..**:..*-..--..+*.....+..-**..-*****=...=...+*...::...*+..+**..=*.....=***********************************************************
************************************************************-.......+*..:=..+*........*...***+..+:..******=..**+..++..+**+..=+..+**..=*...**************************************************************
************************************************************=..+*+=+**+....=**..:**=++*..:****-....+******=..**+..++..=**=..++..+*+..=*...**************************************************************
*************************************************************:.....-***=...***+......+*..:*****...-*******=..**+..+*=......=**.......=*...**+..+********************************************************
***********************************************************************************************...******************************************************************************************************
*********************************************************************************************....*******************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************
++==++=-++===-==========+++++===++++++++++*****************************+++***+++++++++***+********++++++++++***+++++++++++++++====::..:====-::-==+++++====-::................................:---:::::::
+=====-=+===--=====+++++++++++++++++++++++++**************************++++***+++++++++++==+*+*++****++++++++====+++++++++++=++===+=::..-===-:-:=++++++=====-::.................................:::-:::::
======-=====-=======+++++++++++++++++++++++++************************+++++***+*+++++=++++*++=-.:--=-:.==++++=-==--==+++++++=++===+=-::..==--::::=++++++=====-:....................................::::::
=====-====------=====+=++++++==++++++++++++++**********************+++++++***+++++*+*+*+++..::..:............=.:=:=---=+==++++=====---..-----:-::=+++++++====...::::.................................:::
==-==--==----==-:==:++:++++++=++++++++++++++++*********************++++++***+++++**++++=:...:.........................:-+====++=====--..:---=---:-=++++++====..--::::...................................
=--=-:===--:---=:=+.**.:.:--==++++++=+++++++++*********************++++++***+*+***+=-::..=*:-=:....:......................:.::=+=====-:..--=====---=++++=+=+...-----::..................................
=--=--===--:.--............:..-=++++++++++++++*********************+++++********+==-=++****+===-.....:--.:==-:...............-=++-===-:..:-==+==-:-===++==+...===-----:.................................
=--=------...........-:......::.-=+++++++++++**********************+++++******+==++*********+======-=---:=++++=:..........-==++=+====--..:==++===---=-=+++-..-=====----:................................
----:---.................-::=+==-:.-=+++++++++*********************+++*******++**************+=-------:-+***+++=.........:--==++++====-:..-++++==---=-:=+=...=======---:::..............................
----:..................:----++++++**===+++*************************+++******+++++++++==+********+++==++***+=:...:....::.===++++++++-=---:.-++++===--==-:-...=+=========--::::..:........................
---=.........:-....::.:--:-+**+****+++++***************************+++*******************+-+-+=.++-:.:---:.......==++++++++++++++++=-----:-++++===---=-....-++++========--::....:.......................
==--......:-==+=:...:::::=+++++=+++===++*************************************************++=-=-++==...:.----=--:.+++++++++**+++++++==-=--=-=++++===-===....-++++=========--::....:......................
=--:.......-==+++===-==+=::::==+++++++*******************************************+******++++=+*+=++-:+==+++++*++=+**********++++++=========-++++======....---=++==========---:..........................
--............:::.:...:.==:.+++++++++++******************************************+++*******++*****++************+***********+++=-::........-*+:.:====....:==--==+===--=====--:-:........................
-=-..:--.......-:--:..:-=+=-=++++++++++********************************************+**++*********+***********+++=-:.........................:=.....==.....:-=--=======-=====--::::..::..................
==---======::===--++=-==+++++++++++++++***********************************************+++===--::....................................:----===--==-..-:.....:-==-========--====--:...::::.................
=====+++++++=++++++++++++++++++++++++*********************************************+=:..............................:::::----================------........-=--=========---====--:...::::................
===++++++++++++++++++++++++++++++++**************************************+:=#***...........:::-----======++++++++++++++++++++=====++++=======-==-.......+--=----========---====--::.:.:::...............
------::::.....................-**-==+********=...-********************#.....+:...-++**************************++++++++++++++++++++++++=====--==....:-=+====---========----=====--:.:..:::..............
...............................:*#:..==.:=***=..=..==******************..=#....:**************************************+++++++++++++++++====-:..=+++==-======-----=======-----===---::.::::..............
:::::::::::--:-:---------=======+===-:......:..***+.=.#***************..=**...:+************************************+*++++++++=======++-..-=::=++=====-=+====-----=====-=----------::::::::.............
================================++++++++==:...:=****:.::************-..+***=:.:*+***********************************+++++++=====-::.:-=++===-:-=+++===---=+===------===--=---::-----:::::::.............
===================++++++++++++++++++++++++++-.=******:....-++++=:...=*+++****+:-+*********************************+++++==-::.:---===++++++==:-========---=++===----====--=--:::::--::::::::............
+++++++++++++++++++++++++++++++++++++++++*+-..=**+*******=.......:+*++++++++++++++++++=======+++*********+++==--::::::------======++++++++++=-============-=+==-=----====--=-:::::::-:::::::............
=====++++++++++++++++======+++++=--:...:-=+**+++++++**********+*+++++=================---------::::::::::::--------==========++++++++++++++==--=+======-:---=+===-----===-:----:::::::::::::............
...........::::::::...........:-=+**++++++++++++++++++++++++++++++=======--------------------------------=======++++++++++++++++++++++++++++=--========-:-::-=====-::-====------::::::::::::............
-::::::::::::::::::::.::::::---===+++++++++++++++++++++++++++=======------------------------=========++++++++++++++++++++++++++*++++++++++++=--========---::--====-::-=====------::::::::::::...........
======-------------:-----------===+++++++++++=++++++++++=============-----------===========++++++++++++++++++++++++++++++++*****++++++++++++=:-=====-==---:::--=+==-::-======-----::::::.::::...........
=====================--------======+++++=============================-=----=--===++++++++++++++++******+*+++++++++++++++********++++++++++++=:=+=====-----:--:--=+=-:.:-=====------:::::................
================================================================================++++++++********************++*+++++**********++*+++++++++++=-=+=====-----:------====:::-=======----:::::::.............
==+++++++++++++====================================================+=++++=====++++*********************+*********************+++++++++++++++--+++====----------:-=====----=======-----::::::............
++++++++++++++++============================================+++++++++++++++++++++****************************************+***++++++++++++++=-=+++====-------------=====--====-====-----:::::............
+++++++++++++++========================================++++++++++++++++++++++++++*********************************************+++++++++++++==+++++==--:-----===---===--=--====-==-------::..............
+++++++++++++++++==+==============================++++++++++++++++++++++==++++++++********************************************++++++++++++=-=+++++===-::---====----==---======--==-------::.............
+++++++++++++++++++++++++========================++++++++++++++++====-====++++++++********************************************++++++++++++=-=+++++===-::--=====-----=-:---====------------::............
++++++++++++++++++++++++======================-=++++++++++++++++==:....:=++++++++********************************************+++++++++++++==++++++===--:--=====-------::--=====----------::::...........
++++++++++++++++++++++++++++====++++++=+++===....=+++++++++++++=-==:.:===+++++++*******************************************+++++++++++++++==++++++===--:--=======----=---======----------:::::..........
+++++++++++++++++++++++++++++++++++++++++++++++==+++++++++++++=+++++=++*++++++++**********************+--++***************+++++++++++++++===++++++===-----=======-----==========----------:::::.........
++++++++++++++++++++++++++++++++++++++++++++++*********++++++++++*+++++++++=++**********************=:....=+++++****++****+**++*+++++++++==+++++++====----========--=-======----=--------::::::.........
++++++++++++++++++++++++++++++++++++++++++++++********************+++++++++***********************+=-::-....++++++**+++++++++++++**++++++=++++++++=--=---=========--=-======----==--------:::::::.....:.
+++++++++++++++++++++++++++++++++++++++++*************************+++*+++************************=:......+:...:++++++++++++++******+++++++++++++++=--=---===================---===---:--::::::.::.....::
++++++++++++++++++++++++++++++++++++++********************************************************+=--::.......+=...+++++=-.:++++*****++++++++++++++++=--==-===+======================---::-:::::::::::.::::
+++++++++++++++++++++++++++++++++++++********************************************************+=---:::.:--...=+...=-:..-+=+++****+++++++++++++++++=-:-=====+=======================------::::::::::::::::
+++++++++++++++++++++++++++++++++++*********************************************************++=---:::::-=+...::....==-==+++++++++++++++++++++++++=-:---===++====================-------:::::::::::::::::
+++++++++++++++++++++++++++++++++++********************************************************++==---:..:--:........-===++++++++++++++++++++++++++++=::---=========================-------:::::::::::::::::
++++++++++++++++++++++++++++++++++********************************************************+++=----............:=-===++++++++-..:=++++++++++++++++=::--===++====================---------::::::::::::::::
+++++++++++++++++++++++++++++++*********************************************************++++==---:...........+===+======+++:+-...-=:++++++++++++=-::--===++==========+========----------::::::::::::::::
++++++++++++++++++++++++++++++++*****************************************************++++====----...........=+==+=====+++==..-....=+++++++++++++=-:-=====+====================----------::::::::::::::::
++++++++++++++++++++++++++++++++**************++******+***+**********************+++++======----::............:==-====++=+++=...-++++++++++++++=-:--===++++================-==-----------:::::-:::::::::
++++++++++++++++++++++++++++++*++++****+++++++++++++++++=+++====+++*++*******++++++=======------::.............----==+=====++==++++++++++++++++=----==+++++===============---=----------::--::--::::::::
++++++++++++++++++++++++++++++*++++++++++++++++++=======---------===+++++++++++++=====-----------:............:---=+==+====++++*******++++++++=----==++++++======++======-::-==------------:-----:::::::
+++++++++++++++++*++++++++++++++++++++++++++======-=-------:::::---:-----===========------------:::...........=---=======+++++++********+++++==--:-==++++++============---:-===-------------------::::::
++++++++++++++++++++++++++++++++++++++++==--:--=----:::...::...:--:::::..:::---------------------::............:-----=====+++++********+++++===---==++++++======+==+==-------==--------:-------:::::::::
+++++++++++++++++++++++++++++++++++++==-:..........................................:-------------.................===....--=-=++++***+++++++==---==+++++++=====+++====--:---===--------::------:::::::::
++++++++++++++++++++++++++++++++++=---:...............:.:----........................:-------------:......::.....-==++=.........:+++++++++++==--====++++++====+++=====-:--=====-------:::----:::::::::::
+++++++++++++++++++++++++++++++++=-::...........-=======+++==----:::....:...............:--------------:-:::.....---=----::....+++++++++++++==-=====+++++======+=====--:--======-------::----:::::::::::
+++++++++++++++++++++++++++++++=-.........................................................------------------:....-----=====+++++*++++++++++==--=====+++======+=======-:--====---------::----:::::::::::-
+++++++++++++++++++++++++++++==-....................::::.:.:::-----::::::.................--=========-------....:=++++++++++++++++++++++++==--======++==============----===-----------:-----::::::::::::
=++++++++++++++++++++++++++++++=--................:..::::....::::-:.:...................::-===================++++++++++++++++++++++++++===----====================----==----------:-------::::.::::::::
=++++++++++++++++++++++++++++++++++=-:..........:::.::::.....:.:::::...............::-=====+++++++++++++++++++++++++++++++++++++++++++=====----==+================----==------------------:::...::::::::
-=+++++++++++++++++++++++++++++++++++++=-::...:----:-----.::::-------:::::::.:---====+++++++++++++++++++++++++++++++++++++++++++++++++====----=====+==============--==-==----------------:........::::::
:=++++++++++++++++++++++++++++++++++++++++==+====+=====--=-===--===-=-=-=========++++++++++++++++++++++++++++++++++++++++++++++++++++=====--=====================---==-==---------------:.........::::::
.-==++++++++++++++++++++++++++++++++++++++++++++++===---::::::::---===========+++++++++++++++++++++++++++++++++++++++++++++++++++++++====--=====================----=--=---------------:..........::::::
.:-==+++++++++++++++++++++++++++++++++++++++++++++================+++++==++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++====-=====================---=-------------------:............:::::
#######**#**+++=+*#*+===========++##****#+----+***++=--=*******+++==********************************+++********+++==============+==========------=======+++++++++++++++++++===-----=++*#################
#######***##****+===++========+++**#+++#=---=****++=:+**++****=====+*******************************+********+++++**#*+=-:......................:::---=======-------===+++++++++++++++==---==+**#########
########**+*+++===++=======--=++*#**++-::::-+++++=-..-*###**+=+====+*+++==--::.........:-+**********#*****++++**#+..............................................::-====-------==++++++++++++==----=+*###
#########*###**************+++**++*+:----:-====-::...:=+++***+=====-.....................-***************+++***.............................................................:-===-----===++++++++++===--
########***#*+**#**#****++*+***+++==:----=+++=-:-...:---=====+++===-.....................-***************+***:......................................................................:---------==++++++++
#######*****=+===+****++++****=+==+=:---=+*++=::==------------=++=--.....................+*********#****+***.....................................:::.......................................:-==-----==++
#**#####*==+++==+*+++**#*+=-===+++++=-=+***+=:-***++------------=++=.::::::::::.........:*******###*#*****+...................................:::.................................................:-=--:
#########++*+=+==+++++***+++==++****+##***+=--####**+:......::---=+=.::....::...........+*******#*********............................................:........................:........................
########*++++++--=++++*#***++=+++***+*+**+==-***+++==-.........-====.::...:....::......-#*******#********::..................................................................:....:-::=-:...............
#########*+++++=---===+*###**+====+##**+===-=+++++++==......::::-==-............:.....:********##********.:....:..............................................................::..............::........
#**#######*++++*+--++++******+======+*+===-=+++++++=-.:-:--::::--==-....:.:::.:.......=***********#*****=:.....:.........................................................::.....:...................::..
###########******=--+====++++**+***+++===-=*++=:.....:.-=--::..:===-..::::::::::.....:*****************#-:....::.................................................:.:::..:::.................::--:.......
###########*******+:--====++******++*+*++#=...:....-==--::.....-==+=::::::::::::.....+*********#**#*****::....-:......................................................::----...:--.:::.::::::::--:-...::
-----------------========--:..--:....:::::::::::-========-:--:::---::::::::----.....-*************#*****::....=:...................................................:------:..:---:::::--:::--===.::--:.:
-----------------=+++===--:..--:....:::::::::...:======--::--.:::--:::::::::::-.....********************::....=:..................................................::.:-----.:==---=:.::---==-::..:.:---:
-----------------======--...::::.::::...:--:::::--====-:::::..::---:::------:-.....=********************.:....=:....................................................:-==-:.:----==:.....:-======-:------
=---------:::-:-======--:....::---:..........:::::-=--:::::..:::--:::====---:.....:*********************.:....=-.::....................:::........................:....::....--=-.............:-========
--=====:-::::::========:-==-------:.......::::...-+--:::::..:::::::-=======-:.....+********************+.:....=-.:::........:..:...::::...........................::....-=:.--=......:-:-..-:-===---=-::
.:--====-::::::=========-----::--:::............::=+-:::::..:::::-:-======--.....:*********************+.:....=-.:::::======-::::.................................::-...:-=:=-...:-=---:=::.===-=+++++==
.:::--====::::--========--:::-::::...:..........::-=+::::...::::---:-------:.....+*********************+.:....+-..:::--========--:................................:::-..:==:.-..::-==-=::..-==-++++-:--=
.:::::--===::.-========--::::::::..:::...........::-+=:::...:::----::-----:.....-**********************=.:...:+-.::.....::-=======-......:........................:----.:===-...:...-++=*..-:=+++-..:=++
.:::::::----..-=========--:::::...::::...........:::-=-:....::-----::-----:.....+**********************=.:...:+=...-====--..:-======:................................................-++=++--=++:....:::
.::::-:::---::========---::::....::::.....::......:::-=:...:::-----:::----.....-***********************=.:...:+=..:--====++++::-=====-............................::-:.....:::.......:=+==+++++--...:.-+
:.....-::::::--=====------::.:::::::......:::.....::--=+-..:::-----:::::::.....************************=.:...:+-......:--=+++++-:=====-...........................-=====:...:-:...:...-+==+=++-..**+*+*+
:.....:=-::::--==-=====----:::::::::.....::.:....:::---==:.:::------:::::.....-************************=.:...:+=----.....:-==++++-==++=-..........................-------:..---...:...-===+=++=----=::==
:.:::.::=-:.:-=======-----:::---::::...:::::::..::::----==.:::-----:.:::......*************************=.:...:+=:=:........:-=++++-=++==:.........................===----.::-=:=.....:-======::-..::--=+
::::::-::-+::-=-===-------::-------:..::::::::..::::-----=:.::----=-..::.....=*************************+.:....+=.........:--::-====.=+++-.........................-:::...:.---=:-=..::::--==::....:-::==
:-::::==::-++=====--------::-------:.:::::::::..:::------=-.::---====-.......*+************************+......+=..........-==-.----.:-===.................................:-=-=:---...:--===++++++=--=++
--::::-==:::=++======----::--------:.::---:-::..::---------.::---=====-.....=***************************......+=...:::.....:=-..::....---................................::--:-.::=....::::::-:--=++*+==
:-:::--==-:::-+*+=-==---::---------:.:------::..::---------=--::-=====......****************************......++...:--:..........--.....................................:::..:-.::-.......::::::::--=+*-
::-::--===:-=--+++++=-=-::---------::--------:..::--------==--:::-=-:......=**++*******************+****:.....==-+:=++=-...............................................:::...::.---........::..::::::-=+
-=-------=:--=--++++===-==-----=++*-:--------:.::----------==-..::=-.......++++++++++**************++***-.....-==-:++=+++=.................................................:::..::-=:..--.:--:-::....:-=
+=--------:---=--+*+*++++=+=--+******--------:.::--==--=-===:..::==-......=++++++++++++************++***=.....-=-:=++++++==+:.........:....................................---+-..:-:...::::.....::...-=
+==-------::-----=+*****+*+++++++****+-------:.-=+========-:..:::---.....:*++++++++++++***********+++***+.....:=-:.:::=======:......::..................................--:.:--===---...:::--:.........:
======---:.:------=****+**+*++++++++++=--============+==:--::::::--:.....++++++++++++++*******+***++++**+......=-.-+=+-.:--==--=++=-.....................................:---::--==+-......-----:.....::
=====----:.::-::::-+****+++++++=++++++===+++=====++===:--:::::::---:....=++++++++++++++**+*++++*+++++++++......=-...=+++=:--==-==-:.-......................................:---::---=+......:----:......
===------:.::::::::-****++=+++++++=+++==+++++++++++=---::::::::::--:...=++++++++++++++++++*++++++++++++++:.....-=....-===::===-:.::--........................................---:.:---=--=+==++-=-..-===
===------:..:::::-::=***++=+++++++++++-=++++++++=-::::::-:::::-::--:..++++++++========+++++++++++++==++++-.....:=....:-==-.====-.+==:..........................................---:.----:-+=++=++=-----:
==-------:..::::-:::-++*+==++++++++++=-=++++*+--:-:::::-:::----=----+++++++===========+++++++++++++==+++++......=....:-==-:=+==-=++=:.....................................::----:.:====-:==+--+++===-:--
==-------:..::--------+++=+**++++++++-=++*+=::::::-:::-:--------=:-=+++++=============++++++++++++++=++++*:.....-:..:--==-:=++=-=++-:.....................................-:::-==-=++=:=-=+=+=---+=--===
==--------..::--------=++=+**+++++++=+**=--::::----::--------------=*++++=============+++++++++*+++++++***=.....:-::-====--++++-=++--:...........:........................:====::+++--==...:..+++=======
==--------...:----==---++=+**++++++=++=-::::-------::--------------=*******++++=+==++++*+**+++**+*+++*****+......-:-=====-=+*++-=+=--......................................---=-=++-===--------==++=++==
====------...:---====---+=+***+*+++=--:::::-------:::--------------=++++++*********++++********************......-:-====-==+*+==++=-*.............:........................:..::-=:-============++==++=-
=====-----...:----===----++**+*++=--:::::---==----:.---------------=*+++++++++**+***##*###*****************=.....:--:..--===*=-+++-+*=........:...:........................-=:====++++++===-.-+++=-+++=-
===-------....:---===----=++***=---:..::---===---:.:-------------:-=*+*******************#****#*********###*......:.:.-:====-=+++++*+-..........::--:.......................+=:------:--:==+==++=-:+++=-
==-==--=--:...:---===----=+**+----:...:---=====--:.----==--------::-******************#**#****#********#####:.......:::-=====++++**++=..........:::-::......................=++-:==-===:---=-::--+==+++=
==--++---=....:----==-----++=-----...:---==+====-..---====------:::=*********************##***#*********####=.........-:-++++****+++=..........::::--:.........................+:-.-.-+===-=====-==-+++=
=-=-=-++=-....:---==--===-==-----::..--==+++====:.:======------:::=+********************##****#**********##**........:-=-==+****++=:....:::...::::::-:.......................--:--=====-====+==-===---==
=======-=-.....---==-=========---::.-===++++===-..======---=---::-=+**************************#***********##*:......:-:-+---=+==-==-:.....::--::::::::.......................--=========+++=---====+=-:=
=========-.....------==========-::.:====+++====:.:=====--=----::-==++++***********************#************#*=......:=.==***=======*:.......:-=::::::-:......................:======++++==--+++++====--=
==++======.....:----===+======-::::-=++++++====..=====--==-=:-::===++++++***********************************#+......---:=+++++===+**:........::-:::::::.....................:=--==+=======:+==+++++++-..
==++++++==:.....::--==+++====-:::::==+++++++==-.:=====-=------:-==+++++++++++++*******************+=*********#......:==+======--+*++:.........::::::::-...................::.::.-----====+++***+++=-:.:=
==+++++++=-......::==++++====-::::-=++++++++==..=+++++=-==---::===++=++++++++++*+*****************+=*********#-.....-+=+++=-++==++=--..........:::::::::...............--===-::::==-=++++++*+++=-:--:::-
==+++++++=-.......-+++++++=--:::::-=++++++++=-.-++++++++===--.-==+++===++++++++++*****************+=**********=.....:*+=++**+::+==+++..........:::::::::.............-====-----=+:===========-:-===---::
==++++++++=......:+++++++==-:...::==++****++=:.++++++++++===::===+++====+++++++++***************+++=*+********+......***-++**+++**++=...........:.::::::............=========+====:.:-=++++-=-=-===-==-=
===+++++++=......=++++++=---....::==++****++=.-++++++++++==-.-===+++=====++++++++***************+*+*+++********......+***-:+*+-+++=.:...........:..::::::.......=+*+++=+==+++==+=+-=-++++=-+-=====-=+--=
===++++++++:....:++++++=---......-=+++***+++=:+++++++++++==.:-===+++======+++++++*********+*****++**+++********......=****+-::.:.:-==..............::::::......:-=-++++++++++-====--=++*=-=+++-==-===+++
===+++++++=-....-++++++-=-:......-==++****++==++++++*++++=-:-====+++======+++++++********++*****++**+++********......:++***+=--=-====:...............:.::........::=++++++=--===++====++*+==+*+=--=-:-=+
====+++++++=....=++++++--:.......:==++****++-++++++*+++++=.:-====+++======+++++++********+++****+***++*********:.....:+=+****=.:====-:..................:.........:..--::=*++=---:=++==++**+=+++=-=:-+**
-===++++++++....=+++++=-:........:==++***++==++++++++++++:.:-====+++=====++++++++********+++****+******+*******-......*+++****----::--..................::.........::--:.=:+++=--::+++++++++++++==+****+
.-==++++++++....=====-:...........===++*+++-++++++++++++=..:-=====++====+++++++++********++*****+++===+********-......+**=+*+++++=====..................::.......-====++==-:----=-::++++***++*+++****+==
.--==+++++++:...=-==-:............-===++++=-++++***+++++:..::-=-==++==+++++++++++*********+***===+*++**********=......-***+===:=++====...................:....:=...--=+=+++++=-+==--:-+++++***++**++--+*
..--=+++++++:.....:................---=++=.=+++++***+++=....::---==+=++++++++++++**************+*+---+*********+.......-++:+=-=++++++=-..................:....=++...-+*+-=+***++++-=.:-===+++=++==--+=++
..:--=++++++:...........................:..+++++***+++=:.....::::-====+++++++++++********+++****+:---=+********+........-=+=-=---=====+-.................:...:=+*=++=+**+--=+**++++=*****+:::---++==-.:-
=======================-===================+=============================***+++++*****+--:***********++-+==+++++++++++++++++++++++=+=+++++=-::::::-=-::------::::::::::::::::::==--==================-==
=....=======---======-=+-==================--============================***=--=+*****+--:+*********+++=====++++++++++++++++++++++++++===+++++==-:::::-===========================-=====================
=::::======-::-======---=======---========---===========================+*************+--:+*********+++=+++++===++++++++++++++++++++++++++++=++++++=-::--::=+++=++++++++++++++++++-===============-====-
++++++==++++=++++====++++====++++++++=++==+=++==========================+***++++=*****++++=*********+++=+++++++==+===++=++++++++++++++++++++++++++++++++=--=+==+++++++++++++++++++===========+===---==--
========================================================================+*****************************+=++++++++++++++=======++++=++++++++++++++++++++++++++=+++++++++++++++++++++++++++++++++++-===----
===-========+========-::-=======-===================-===================+******=+*********************+=+++++++++++++++++++=-=+=-+++++++++++=+++++++++++++===================================+==--------
===-=======+=--======:=::=======*+=======----======-+===============----=*****+*+*****++=-+***********+=++++++=++++++++++=++++++======++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-==-----
===-========--======================================================:---=****++=**********************+========+==========++++++++++=======+++=-=+++++++=======++++++++==++=++++++++++++++++++++:=------
=============+===============-::::---------------------------------++++++***+++*=*****=++++***********+===================-===============-++==--+++++++++++++++++++++++++++++++++++++++++++++++-=++====
=============================-:------------------------------------+++===****************************++:::::::::::-=-=-==-=================++=====++++++++++++++++++++++++++++++++++++++++++++++:===----
===-=======....======--======+++=----::::::------------------------++++=+*************+=+=+***********+++++++++++++++++++==================+++++++++++++++++++++++++++++++++++++++++++++++++++++=++=====
==+========:...======--+=====++=+------------------================+++++++================+++++++++++++=+++++++++++++++++==================++++++++++++++++++++++++++=++++++++++=+++++++++++++++=++====-
=========+===================++=+++=-=-=---------------------------+++++++++++++++++++++++++++++++++++=+**************=====================++++++++++++++++++++++++++=*+++++++++=+++++++++++++++=++=+===
=============================+++++=+===============================++++++++++++++++++++++++++++++++++++++++++++++++++++++=======================================================================--==-===
=============================+++++=++++-====--------------------===+++***=--==*****+++=+***************=++==*****+:--****+=====================+======++=++===========================================+=
=======================-=====++++++++=++++=-----=====================+***-----*****=---+******==*******+==-+*****=---+***+=====================+++=++===+====++++++++++++++++++++++++++++++++++++++++=++
============--========:-=====+++++++++++++----=--------=-::::::------=****************+*****************++*********++****+=====================++++++++*+****++***+++**+*************************==+==++
=++++=====++++++====+++++====+++++++++++=++++=::::-----=::::::::::::-=***+*+*+****+****+********+++*****+=*+*+****++*+***======================++======++++++++++++++++++++++++++++++++++++++++++=====++
=============================+++++++++++++++=----------=+++=++++++++++***************************************************+=====================++*****+******+---*********++************************+=++
=:+*========-========--=-=======+++++++++++==+++=------=++-=--++++++++***-+=-=*****==-=******+-+=+******+-+******=-:--***======================++**=---=*****+---+*******+*+******====*****+:---****+=++
=.=:=======---:======----======-+++++++++++++++=+------=++::--++++++++***-====*****----+*****--+++*****+-=+******+=-:-***======================++************+:::+******++++*************************=--
=:==========---========-===========++++++++++++=++++-=-=++++++++++++++****+++*****************++*+*******++******+++*****+=====================++**++++=*****++++=*****++++=*****+==+=*****=+++=****++**
++++++=======+=========+=+=========+++++++++++++++=+===+++++++++++++++*****+*+*******+********++**+**++*++*+++**+++++++**+=====================++***************************************************+=++
=================================+=+==++++++++++++=+++==++++++++++++++******************************=+=------::::::::::::::*+=-==--============++**+-=-+******++++*******==+*****+=+++******--:+*****+**
=-==-======--:========---================++++++++++++=+====-=========+***+---+-=---::::::::::::::::::::::::::++-=-==-=============-============+***+---+******===+******===+******==++******-===*****+==
====+======::::======-=-=======--========+++++++++++++=+++-====-----==***----+--:::::::::::::::::::::::::::::::-::---+++++++++++++-============+***+===+******===+******===+******===+******---+*****+=-
==========================================-==+++++++++++=++++=----===+******+++=-=+--=+=-==+++++++++++++++++++++++++=*********+=++-============+***+++++*****++++=*****++++=*****++++=*****++++=****++++
=============================================++++++++++++++++========+********+++++++***************************++++=+++++++*++==+-============+****************************************************++++
================================================++++:---:::::::------=********++++==+***++**********************+==+=*************-============+***+*+++*****+==-+*****+---=************************++**
=:+========:+-+======++========+**========-=-===++++++++++++++++++++++********+*************************************=+*********++*-============+***++=*+*****+=+++*****:::::************************+=::
==--=======:==+=========+========+=========-=======+++==-+++++++++++++********+**+++=-******=+==+*****++===*********=+**********+*-============+***++++*******=++************************************:::
+=+=++===+=+=++=+====++=+=+=====+=+=+==++++========++==-=-++++++++++++********+**+===-******====+*****=====*******+*-++=**********-============+***+*+*+*******+*=*******+++*************************+**
++=++++===++=++====================================+++=--+++++++++++++********+**************************+********+*=*************-============+****************************************************++**
===================================================++++++++++++++++++=********+**********************************++*-+************-============+****************************************************++**
===================================================+++++++++++++++++==********+**********************************++*=+************-============+****************************************************++**
===============================+---::-----:::---:::::::-=-==-=-=++++:=********+**+====+*****=+==+*****=++==******++*=+************-============+****************************************************++**
===============================+--:--::::::::::::::::::--:---=-====--=********+**+===-+****+===-+*****===-+******++*=+++++++++++++-============+****************************************************++**
===============================++=+++=+++++++++++++++++++++++++-+==-===++++++++*************************+********++*=+++++++++++++-============+****************************************************++**
===============================++++++++++++++++++++++++++++++++=++--:++++++++++**********************************++*=++++======================+****************************************************++**
===============================++=++=++*++*****************===+--=--=+========+**********************************++*-===-======================+*****************************************************=++
===============================++======++++++++++++++++++++====-=:--+++++++++++***====+*****====+*****====+******+++-+++=======================++****************************************************-==
================================+**+++++******+++++************==--=+++++++++++***----+****+----+****+----+******+++-==========================++***************************************************+-==
================================+**++++=+*****==+==***********+=:--++++++++++++**+++++*****+++*******+++=+********++-==========================++***************************************************+=++
================================+***=+++******++++************+--:++--===++++++************************************+-==========================++***************************************************+=++
================================+***+++=*******++*************+:-=+++==-+++++++***++********++********++***********+-==========================++***************************************************+-==
================================+*****************************+=+++++++++++++++***=====*****====+*****==+=+********+-==========================++****************************************************===
================================+***++*+******++*+************+++++++++++++++++***----+*****----*****+----*********+-==========================++***************************************************+=+=
================================+***=++=+*****=++==***********+================****++*******++==******++=+*********+===========================++================+++++++++++++++++++++++++++++++++++++++
================================+***====******====************+===============+************************************+===========================++++++++++++++++++++++++++++++=++++++++++++++++++++++=+++
================================+**===+=+*****+=+*************+=====:---------=***+++++*****=-==******:::=*********+:==-=======================---+---------------:-+-::--:-++++++=+++++++++++***+*+=***
================================+*****************************=====+-=========+***+++==*****=--=******---=*********=-==============================--============--::::-=+++++=+++++++++++++++****==+***
================================+***++++******====************=====++++==++++++***++++******====******---=*********==+++=====================+=:::-++==++++++=:::::-=+++++==++++++++++++++++++***+++=***
================================+***=++=+*****=---************=====++-==+=+++++****++*****+=****+****************++=++++===================+-:::=++++++-+=:-:::-++++++=++++++++++++++++++++++++++++++++*
================================+***++++******+===************=====++=:--=+++++++++++++++++++++++++++++++++++++++++=++++==================::::=+++++++++=-:-=+++++=+++++++++++++++++=++++++==+*+**+++++*
================================+***++++******++++************=====+++++++++++++==-==++++++++++++++++++++++++++++++=++++===============+::::=+++++++++++++=++====++++++++++++++++++++=++===+++******=***
================================+*****************************=====+++++++++++====:::-==-======-==--=----===========++++-=============::::+++++++++++++++++=+++++++++++++++++++++==+==++++++++****==+***
================================+***++*-******=-=-************=====++++++++++++=+:::+++=++++++++++==-====+++++++++++++++::::::::::=-:::-++++++++++++++++++++=++++++++++++++=+====--=++++++++++***+++=***
=++*+===========================+**+=--=******=-=-************======---------===:--++=-++++++++++=+=====================+++++++++-:::-++++++++++++++++++++==+++++++++++++==+===+++-==========++++++++++*
====-===========================+***++++*******++*************=================---++==++++++++++-=++======+==-=========+=++++=+::::=++++++++++++++++++++-++++++++++++==+==++++++++-==========+++++++++++
================================+***************+*************-==============-:--++++++++++++++==+++++++++++++++++++++++++++=::::=+++=++++++++++++++++=++++++++++++====+++++++++++-==========+==========
================================+*****************************-============+---=++++++++++++++==++++++++++++++++++++++++++=::::++++==+++++++++=+++++-+++++++++++=-=+++++++++++++++-===========----------
================================+***=-=-**********************-===========+:-:=+++++++++++++++-+++++++++++++++++++++++++=:::-++++++++++++++++++====+++++++++=-++++++++++++++++++++-=====================
================================+***=-=-**********************-==========+:-:++++++++++++++++=++++++++++++++++=+++++=+-:::-++++++++++++++++++====+++++++===++==+++=+++++++++++++++-=====================
=================================**+++*++*********************-=========+=::+++-:=-=+++++++==++++++++==========+====---:-+++=++++++++++++++====+++++===++++++======+++++++++++++++-=====================
+*+=...------::***+....:-..---...-:...-::..-=+=:.=*#=..::+.+==.:....-:.:=...=-..:-----==.:-:-----==+++===-...:-+.:-=-.-=..:++=+++====+...:-=.....-.=:=-#-:..:===+++++++=..--.-:=.:..-=--+++=++.:-.......
=-::.:.---:-+-:***=....-:.:---:.........---++=:.-===*::..-+==::....=+-+**...=#*-=++=-*#*...........-=+**=....-:+-.:+-.:-*++===++-=+==+...........=-=-++++====.:--:-===.......+*+*-..:=--=+==+*::::.::...
=---:-::......:##*=.**..-::-:::--::-=:::==+#+-###-==#:...:-:::::....+:=+=-..=##::+=.-##*.:=++++:...-=*##+=-::=:+-.-+=-*+*#*+++++++++++...::......-=-:*+=*+===--::--::.....::+*###*..:-.....::...:.:::-..
:::::-=+**********+...:.::::.:.:-----::-:--:=+-*=====:..-==+=-:-:.........:=*##:.::.-##*:+#*++*#*..-+###*+=-:=:#++*#######*+++++++++++....:---:..=***#####***::::::::::::.::*+****..*##########+........
:-----:+****####**+:::::::::::-----::--=::::--::--:--:..--=+-----.....:-::==*#*:-==-:##*.+=++++++..-=****+--==-#+#########********+++*...:-==-::.+**######***------------.:==****-..*+#*+***#*+*==--++++
:.::::.++****#####*=++++=+==++--=-=+::--=:.=.::.-=:-::::.:-+:::--....-:=:===......:-....:*-=++***..............#+*#########*===+#***+#.....--..::+*=:.....:*+=--=+===---:..:=****-..***+==+*#+**+-..==:+
--:.:--+++****#####=+++=-=++++:-==:=-:-:--.:=:..::.-:-===--+-====...:+=++==-....=*=:**:.:*.+*****:.....+.-.....############*++++#++*+#-.:=::-==::+@-..:+*=:##====+======-.::=*#++-..*==++++*+=#*+-..===+
-=++=--=+++++++++**+++==.-=++=+---:-+***++=+++--::--:.....-::.......:=+++=::...-##+=*+:.:*:*+=++*+....*=-=.......:=++===-:=*++++*++*+#--.::.:--:-+@-.:-*-:-##===========:-++=.:--...**+*+*+*++#*++=++==+
*******++******+++++++=+======..::-:::-+::-+=*=--+:::....:-::........-*+=........:-:-:...-.=====++....***+*....---===---:.-**********#:::....:.::+@##=.:.++##++==-=+======+==:::-:..+++++==+++=++=+++=*:
++***=.+******+===-===========.....==-:-+-:::-::=+**#:...=-::::......*+++.....:--:::.:::.=.+++=++*:..-**+*.....-:.:-::......::-=..:::-:......---:=@#**-.+#*##:.:..:::.-=-...........**=++*+++-:-++**+===
++=:...=+++++++===-===========:::--=====..--==.:---.+:..:.--*-::....:++==....=*##:===:=-.-:-++++*=:..:+==*.....:.:+++-:-:..:==-+..=:=+.:..::-----=*+-==-===#*:::.:...:--:...........++-+++++====+=**+---
-......==+========---+=..-=-:=.....+*=.....::.::=====..::-=+=-:=-...:==.:...-###+:--+*-+....:.=:=:....+*##+=:..............*==*+:#:-*=....--:-::.=*++####+*+#-=-:..:+*:=............==+==++====-+=**+---
:=-==========------:--::-=-.-=..:::::-:...:::-.:===:*:...:-+=::::...........-**###:::.:+##*-:::-+##-.-####*+...+++=+=-===+==:.=+.-::==##*==+######*##########.......................------------=++++---
=++::+#*++++++++++=.--::::-----::.::::::..-=+=::==:.-.:+#*--=++:...:=**###*******==+**+=#:..=+++:.+-.*#+*##+...-=++*-:::::=:..-=:::.:*#*..-*#**###**###**####.......:=....::::::::-:*########***=:..=+++
=-:=-=-***********+..:-------:.:=+===-=-..:::-:-*+#*#-**##**+**##*****##-#=**++=++++++++-.:*=.:.-:::..=*+-:....:++**+-::::=....=-:...-##-..-=:=###**###-#**##........-...-====++++++*######****+====++++
-:=*++:***+-=**=-++.:::------:.--:..=::...=-=+.:--:.==#+######*##*******-#+=*--=++=+++=+::=:..:..-:*########*#*--::--:..:.-...:==-.-.=##*...:+####*+*##-#****-----::-....-===....+*+########***+-:*=+==+
:-.:--:****--=+---+##+------=#:.:...........-::-+++++*++++=:....-+-=****:*#++-=+++++=+=++:-....:.::#**#+#***=+=-:.::::::.:.:+=:=##=-*#*#=-+***#**########*##*-+-+=====+=:-===-...+*+*###*:..***+==+=+=++
==--++=*+-=:::=:::=##.......:#+--....====-::+=.:--==**+++.......--..-==+-=+*+##**==+--:-@*--.:..:+#####*****+*+=:-:::-=:.::++--###*+@#---======++-::::::::::.=*.:=:=+...---=-*::.+*+####*++*##*=.-:.--=:
----:-=+:.:-=-+:::-#*.......:#+==:...++++-.-=-::-=-.-*+===+.....--------=====+***====:::####***####*===-+===-=-=-=====-:::=#*-####**#+---=====+++-::::::-:-:-::.-*+++..:=----+---=+++***###****=..:-...:
+-+==:=-:-====-----##-......:#**+-.-.-***=----==---=-=++==+--++==---:==========-===-::.............:..:.-.#####+--++++=-.-=*==#*+*=***:-==--==+++-::=-==::-::.:-=++::*-.-+-=-=-===++++*********=.......:
+-*+-.=+++*++++*+++###+.....:#+*+=...=#**=.:-.:=:.-:.+....-=*+..=--:::-=-===*###*#*####*.............:+-..-++-.-=====-+-::-=====:-===-.:-:..:::---:=++=----::..+#*=.-+:.:=:--+-=====+*++*******=:..:...:
:----==*****++=-::-######***##*#*+:+==#**-:--::::-=-.-..==--====+=----==---=*##=--=-*##*...=*-........=...-+=-.:=-====+-.---=====-====####=*#####=:::----::-:..-.::......-::.::::---+**********=....+*+-
=-=+=-=..-.........:-==---.:=:+***---=#+--:::--.=-=-.=+===+*+======-======-=*#+=-===-##*..:==.:-...........:...:-::-:::::-:----=*+.---###:=::.+##=-+:-:::-=::=+*#######--===++++*##************=...=*+-=
===+-==.....-..-.....-:.:+===#****--.=**-+...::--:-..-++=::-.:-===++++++=:-:+@=-==+-:*#*.::=-.::...............==.:-:-::.::-----:..:--###**#**###=::-:::=::::=+#=-+=#:+-:==*##*+++*+=--=+===+++=-:.::..=
+=+=+++....--..-...=::-====-+#+**+=-.:+*:....::::::...=...-=##@#+++++==++=:+*@+-==--:*#*:--=:..................--.::::::.::=-----:----###########+-:::--:::::..:..-+*-*+=###++++++*+==-=+=+++++=..::-..:
*+*****........:.....:-=+=-:+#:...=.:.....-..:.==:::.-=...=:-#-*+++++++=-=+:+#*-----:+#*...:-+.................++*******++*##########**:+::::::*#=.::::::::::-=*=+******+***+++****+==-.=++==++=.:-:::::
#######............:--.......::...........:-==:::::..-====-=*-:.=##*******+-*#*--.:--*#*....:.......:::::::::::****+##*=***###***###***.:+:.:...#-...........=+=:+++++++*##+.....###-:::-=++-=++-+:::-::
+##+=+*...........:====+*++++-:............::-++-::..-=:...:+-..--====-=====*@*------*#*...:-=:....:=====------***+.+**-=*+--:::+****+#-#=+...:.+-...........=+=..+*+-:=*#+...:=:.-#---::::---=-........
=-*--:=:-::++*#******=+**##++=:...............:-==-..-:=:...-...-=====+=++==*###########.:.:.......=***********+==:::::-+=+**********+#+#*#*:--*#-...........===.::=+*::-#:...++*.+@---::::::--:.==.....
:.-==--..:::.-=--==-++::::...::...........----.:-:::::-:-.....:::=-==-=.:+=+:.:+***#+=*#***+*#*:::.-++=....:*++==**+*+*+*+-=====++++*=**#########-...........--:.::=-:+:-#*.+###+*##:....:......:-+=....
#######.:-==-:...==-:...---::::...........---::.:=---:.:-........==--:.-+=++:..===+=--+-**+*+++*-:.=*==*#+#===+...:-:---++=-----------###==######-...........:::--=***#+=##*#+**###@:...........:-+.....
#######.--+=-::.:--......:::=+..::...+*=..:---:.::::.********#***==-:=-+===+:..:.:::.:+-*++-+**+:..-::........::::=+++=-+==-----------###-+*#*###-......:=*-.-++=-.=###++##*########:..:-++-:..-+-.:.=..
*+**###:-:=+:::..:-:::::.:::--..-=.+.:==..::.......:-**=+++++#+++=:-----:--=:........:=.:::::......:-....:.....**#*++**::=+-----------###*#*=####=..=+:+-.+**++*+*==+*#######**#####:.---==--:..........
+=+*=*#+++==:-++--+::.:---=-=+-=+=-:++***:..:.:::..::*##*#=...=+*=:::::::.:=:.:=+==.....#*#*#######+=-:::::::::.........::--===:=====-=+++++++++=:.-+====...:...........:#######*###::--:..:--:.........
+*+-+**************+=::--:::::.::+-:++++-.::===:-=:::+###*=-::=+*-:::::::::-...::....:.:=::.*+#*#@@#############******#**#=-==+===+==-+++-=:-=-+++**=+==+**+......::....-###=*######::---++:::--=***=:=*
=+:-=+#*#####*+-...-------=+++......=::::::-==-=*=::.++*+#*-+#*=*------:----:..:::..:.:.#***##########@@###@@##*++*+******+==+=*-+:==-+-+------=--.-*:-**-::............:##**#+****#-----==-:-===+*+=-=*
-=--=++###@@###*+==*---+-----*-==++*****+--=++=--.:-:+:==.....:--==-=====-==:.:.....----#*#**##***+###@@+=*####*+*+******#+=======----+------:---:....-..:...:::::::::::=***++++++++-----+-:---=+**=:=++
.::..--*#########**=::::+--:-++=+***=**======-::.-:--=....-...:+===:+===.-==-..-:::::::.############@@@##*##@###*+***+:=**=---==-=--::****#*+*+++-.:.:::....:**+=+*=+-+:************-:--:.-=---===*:-:-+
-+:::==*#########**=::::+:--:=++***+*****=:-=----::.-+:.::.:.=+++===++=+-.=+=:::--.:-::.##*====-:+##@@@@@#@@@##*******.:#*###*###**=#*==-+##+-::=:.........::=-+=--:-.:-=***********+===-===-++=........
:-=-=-:***+*#######=::::+:---++**##**+*****#*+.::-..+=-::.--..-=-====+==:-==-:-:..-.::..#*----=*+-+#############**###+..*####*#****##*:::+++=--:::.......-:.:==----==---+********###+++-=+----+-........
=-.:--.*##****#####=.:::+----++*#********=..-::.+--.*=--==---=====:::+==-===:.:.........#=:+##+-*##=-=:....-...#*####+.=#####***##****..-:=-:.-::........--=:*###########***********+++=-=-:-:=-..===...
:=:-:=+++*+*****+**++++=+=+==+++===+-.+##++=......::+.......:....==--::::::=:...........###########+-=+---=--::######*:+##############.-:::.:-.:......-+::=-.*#####*#*###********##*-----==-:.--..+**...
=:-:.-:=+**######**++++++++++++***++*-=**+##-.+=...=-..:....:.:::===-======-*###++#####*...........:==*#*=--.*#######**###*+=*##*=+-..:.......:.:....=**::-::*+-#+#++-*##****#******======+=---=.:**=:-:
-===+=-************++++++++++++*#+==::==#+*=+==+#+=++=:........::========+::*###*-#####*.....=......:-.--:::.:=...........:+*###*#*:............:-++=--*###****+#*#+++*+#****#******+++--=--.-+=.:==+-==
.---+--====++=++++=====+=====-=**##=++:-*+##=*#######=:--------::=-+*#*=:-++*##+--..###*....:-......-++*+--:=-+=:-.:*.:+..:==*++*##+=:#+++**+**+**++++*+*##******************#=-****+++=--==+-+=.....-==
::=...:::---.::==-:===*#=+++=-==:-+++-::*+*+=*+++****-.-======---**=:+##**+-+##-....-+*-:.....:....:=+=-+-:.==++#=+##*##++=:-+=+====.:#++=::-++++******=-****##**##*+*++######++####++++:---=-=+++++*###
#*#####--===:=+++-:==--=-==+===-==--=--++++*--+*==-++=:-++=++===-...........=*+.-:...-#-..:-...:==++==+::::::--#########*#=...:--.....#++=*+*+*++*++***==**++*#*******++*###########*++-:::---=+-#######
--....====+=.:+*+--==-------+=+#*=-*=*++*+**-:++=**-*-:=+++++++--....:......-=+...:...+-:-==...===*-.-+*=--.==+#::+***:.:#--.::::.....#*=#*+-**++=........:::++***++*+++*###########=.:::--:::-:-++++**+
---++-=-====**#*+-:+--------==+*#*+**=***=:=:===-=+*=-:=+===-=-==:::.:..:::.-++-.......--===--:===+###*=::-*#+:+**++++=*+*-..--:......#***=:***+*=...........++*+**+*+*=+###########..:::.-::...::::::--
===--:=-==:=***++-:+--------==+##########=-=-===------=+===--=--=:::::..::::-*--..:*...--====+=+=++##*=:=-:++=---+=++**#**=:-::.......#+***+-++++-...........+*****+*****###########:.-=+=:-::..::::::-:
..-==:=-===+##+++-:==--------=*#@@@##@@@#*:+--*++----==+++++=+++=::::::.::::=*=*=.:#*++*======-+==**+-:.-=+=:=-+#===--+=+*-:::........#++#*+=-+++-...........=*+++++++++*###########....-++-:...:...:-:-
--:::.=-===***-+=-:=----------*##########*---=**+==--............:::::..::::=+=++=-*++=+-====-====*##*..:**+**#*--+=--====:...........#=-#==:-+=+=...........++++++++++**#####**####....:::--:..::.---:.
..::-.=---:...:-::.-====-=----*#*########*---=#+====-............:::::::::::=*++=--==:::#**********##+...*#####+++-......-:...........#====----=+-...........*##***#**#*#***#+-+*#**---....=---....===:.
...:-:=:..........:+=====---::*##########*-=-=#+===+-............::::::.:::.=*++=--==:::***********##=...-#####++**+=+++**-...........*###*####**-...........***###*-=##+:-++==*+--::---:..:::.::..:::.:
-:::..=:...........========--:*##########*===+#+===+=............:::....:.:.-*++-::.-:-:*****#*****####==*#####++#***=+**+:.....::::::::=+:+*+++=----::---::-#***++*==+++::+++++*=:.:-:......::=##*==:-+
*******............--======---*##########*===+#*==+==............:.:...:.:::=*+*++++-:--*********###***-++#####****#=*****+***********:=*=:+*#**#-...........*###**##++#=....=+.......:.-:--.::=#*-*.--*
...................=------:-:-================+#++===............:..--=--.:==::.........+++++++**+*+**+-::......-+*+-=**+==***********::-*++=**##-...........*=+*=**+**++...:==+....---::::::==--**#+=*=
-------............--==-:--:::-======+**==###########............::++----...:-:.....-*+=--==+++++===-==:::.....##*-===*####******+****:::::==-+##=::::::::.:.***#****#*++:.:.-=-....*##*+==--.-:+#*+===+
--::--:............------+====-=#=---+++=-########*++.............=#+=:=-:..:-:.....::-===+-==-===+-.+*-.:.....##+.:::=#@@#**-:-:-:+***####*#####=::*+:::::::*+*+*+##*****+++***++++::===+*=-:::=**+-+-+
---:..:------:.:::--.::+=====--:.::--...::+***++++++=............:-*--:-::-*:-.=....++==+**===-++*+::-=:.:=-...##+.:..=+**#*****************+==--:..=-:.-::::++*+*++++++*++**+++++=*==*+==-+-:::-:-===-:
=--:...*=++*+=-==+*-.:=:-:::-=............---========..............++=-:.-#::-:+:.::-=--++*++=-+*+=-:--+*++-::-*+++++#*++*************.::::=+++==-...:.==-.:.::---===..:=##*******+#===-=+--::::-:::--::
.::.:..-=*+==+-=*#*===========....-=:.....---========..:::--:=-....:==-..:.=-:.-+=----.-+***+==*++=++++*###++++#+-:=-=+++##**+=++======+==++++==-:+-=-==-==+-:-=-..--.::+******+**+#-------:-..:=-------
:.....:+++*-++-+=**-========--....+*=.....-:-----=---..:=-:.::...==*=.....++--.-++=--:::+##++==+++=+=-=*###====##+-=-=++###**+==+====+:---====-=+-=:-..:---==-=---:=-..=+##***##***#::+--=====+=---=----
...-:..+++==---:::=---=:.:.-**...:*++.....::-:-:-+--:............:=#=:....:+:.=--++=:...==+=++=*+-::---=##+=---:-:-:-::---+**+=+++++=+===+*+=++**----:-----::+*#=+++=-:-++-==+*=+=+#:::-=-----++--------
......................................................:======+:...............*-............................................................+=..........................................................
.....................................................-########=..=######+.....*-............................................................+=..........................................................
.....................................................-##@@@@##=..=##@@@##.....*-............................................................+=..........................................................
.....................................................-##@@@@##=..=##@@@#*.....*-............................................................+=..........................................................
.....................................................:##@@####=..=######+.....*-....................:+.*-:-+:...............................+=..........................................................
......................................................#####+=#+.-########+....*-.....................+-.*-.+=*.++.*--++.....................+=..........................................................
.....................................................-#######*+.:##@@@@@#+....*-......................-.:..+=*.+=:*..+=.....................+=..........................................................
.....................................................-########=.:####@@##+....*-............................................................+=..........................................................
.....................................................-#=+##=##*.:##*####*+....*-............................................................+=...........................................:....:.....-...
....................................................-*#--:..--+.=##*###*#*....*-.........................-+.+..*:...........................+=.........................................:-............=:.
....................................................=##***...++.*=-#++=+##=...*-........................:=--=-:-+::.........................+=......................................:...-:..........:-:.
....................................................###....:..+##-=-..=+*#+...*-..................................--........................+=.....................................-+########-.........:
....................................................+##:.-=:.-=##+-+*=-.:#*...*-.......................+-=:--.+:=..=-.......................+=.............................-+############@####*=........
....................................................###+=###+=*#@#########*...*-........................*::--:+-+.:.........................+=............................-####@@@@@@@@@@@@@####*-...-:.
....................................................######################*...*-.......................+---::-:::-:-:.......................+=...........................-*###@@@@@@@@@@@@@@@@####*.-:..
......................................................:::..........:::::::....*-............................................................+=..........................=*####@@@@@@@@@@@@@@@@@@@##=.-..
..............................................................................*-............................................................+=..........................-###@@@@@@@@@@@@@@@@@@@@@###-:..
..............................................................................*-............................................................+=.........................:=##@@@@@@@@@@@@@@@@@@@@@@####-..
..............................................................................*-............................................................+=.......................-=######@#@@@@@@@@@@@@@@@@@@@###-..
..............................................................................*-.....................+............:.-.......................+=...........................:+*#####@@@@@@@@@@@@@@@@####...
..............................................................................*-.....................+..=.::-*.*:-..+.......................+=..................:.:######=...:*##@@#####@@@@########+...
..............................................................................*-....................-+:.:+--++-+-=..-=......................+=.........................-=--#*-*###@##*==:..:-*#++##*....
..............................................................................*-............................................................+=..........................+=+::..*########*+*######+.*....
..............................................................................*-.........................::.-..-............................+=.........................=.......=##@###-....=#######=....
..............................................................................*-.........................=++=:=-:...........................+=......................**##=......-#####*:++...--+####:.-..
..............................................................................*-.........................=---------.........................+=..................-=######-......:#######*=.-**+.=###.:+..
..............................................................................*-............................................................+=.................=###@###**......:###@###############*#=..
..............................................................................*-........................=-::==.+:+..........................+=.................=*###@@###-....:####@@@@@@#@####@@###*:..
..............................................................................*-.........................*-:+=-+-*..........................+=..................+###@@###=...:.####@@@@@@@@@@@@@@###*...
..............................................................................*-........................+-..................................+=..................=#@#@@###+.#*.:##*+##@@@@@@@@@@@@###:...
..............................................................................*-............................................................+=..................+#########:-::=##+*##@@@@@@@@@@@@##*....
..............................................................................*-............................................................+=..................::=########:-#######@@@@@@@@@@@####=....
..............................................................................+-............................................................+=.....................:*####*=###@@@@@@@@@@@@@@@@####=.....
..............:=##******=::...................................................*-............................................................+-.....................-###==++######@@@@@@@@@@@@###+:......
..........-######@@@@@########@@##+-..........................................*-............................................................+=....................###-.:::-=++####@@@@@@@@@@@@#-........
.......*###@@@@@@@@@@@@@@@@@@@@@@@########**-.................................*-............................................................+=..................:##+:=....::.....=*###@@@@@###*.........
.....+##@@@@@@@@######@@@@@@@@@@@@@@@@####*####=-:............................*-............................................................+=...................+==*#*:=##*########*#@@@@####..........
....###@@@@@@@##*-...*###@@@@@@@@@@@@@#+.....=####@@#=........................*-............................................................+=...................+#**######*#########@@@@@###-..........
...##@@@@@@@###.........##@@@@@@@@@@##-...**+.:##@@@@#####*+-.................*-............................................................+=....................+*.-##@####@@@@#@@@@@@####............
..=#@@@@@@@@##=.........=#@@@@@@@@@@##:.:.:+-.+#@@@@@@@@@@#######=--..........*-............................................................+=.......................=@@@@@@@@@@@@@@@@####+.............
.:##@@@@@@@@##-.........*#@@@@@@@@@@##=.-#+=..##@@@@@@@@@@@@@@@@@####=........*-............................................................+=..................-....+##@@@@@@@@@@@@@@##*...............
.*##@@@@@@@@#+.:*-=.....*#@@@@@@@@@@##=.*#=..:##@##@@@@@@@@@@@@@@@@@##*:......*-............................................................+=.................+###+:+###@@@@@@@@@@@@###.+..............
##@@@@@@@@@@##=...::....:###@@@@@@@@@##:::...*###-+#####@@@@@@@@@@@@@@##:.....*-............................................................+-.................-######*##@@@@@@@@@@@@@##..*.............
##@@@@@@@@@@##*...........-#####@@@@@@*.=*...+@##*::#+##@@@@@@@@@@@@@@##-.....*-............................................................+=..................##@###@##@@@@@@@@@@####+..+=............
##@@@@@@@@@@@@####=...:........+###@@@##:-.:.-##*.::+-##@@@@@@@@@@@@@@##-.....*-............................................................+=.................:##@#@@@@@@@@@@@@@@#####...#-............
##@@@@@@@@@@@@@@##..--...........*#####**.--.:=+:...-=##@@@@@@@@@@@@@@@#*.....*-............................................................+=..................*###@@@@@@@@@@@@@####=...+*:............
##@@@@@@@@@@@@@@#*..*............*##*#-+-:...+#-....-##*##@@@@@@@@@@@@@##.....*-............................................................+=.................+###@@@@@@@@@@@#####+....=#=.............
##@@@@@@@@@@@@@@#-..-:...........*####-.=#*=.*#.......++*##@@@@@@@@@@##*:.....*-............................................................+=..................*###############*=.....*#*..............
##@@@@@@@@@@@@###:...............-###+*#####*##....+*.-####@@@@@@@@@###.......*-............................................................+=.....................-=++++++++-........+++...............
*#@@@@@@@@@@@@@##:..-....::.......###.-###-=+-*...:=.==*###@@@@@@@@###........*-............................................................+=..........................................................
##@@@@@@@@@@@###*.................+###.=*+*-..*..=....:####@@@@@@@@##=........*-............................................................+-..........................................................
=#@@@@@@@@@@#+....................:###=:*#*:..+.....-:+*@@@@@@@@@@@##+-.......*-............................................................+=..........................................................
=#@@@@@@@###=........::............*#####==-..:.......-:*##@@@@@@@@@#*........*-............................................................+=..........................................................
:##@@#@###-......-.................*#######*::...........#####@@@@####........*-............................................................+=..........................................................
.=#####-...........................*####*-....*+.........##*####@@###*........*-............................................................+=..........................................................
.=####*................:...:.:.....=+-.....+::.*+-:+=.........=#@@#=..........*-............................................................+=..........................................................
.:####=....................:-............*+=::**+==*##...*#*..................*-............................................................+=..........................................................
.=####*.................................-#-........=.....*#=..................*-............................................................+=..........................................................
.=#####.......................................................................*-............................................................+=..........................................................
..=####.......................................................................*-............................................................+=..........................................................
...*###-......................................................................*-............................................................+=..........................................................
...**..*..............-.......................................................*-............................................................+=..........................................................
...:#*-#......................................................................*-............................................................+=..........................................................
..............................................................................*-............................................................+=..........................................................
..............................................................:-==++++++++++++++++++++++++++**************+*+++++++++++++++++==-::......................................................................
............................................................:-=+++++++++++++++++++++++++++++++++++++++******+++++++++++++++++++++++=-:.............................::::::::::::::::.....................
...........................................................::-=++***+++++++++++====================++++++++++++++++++++++++++++++++++++==-......................:::::::::---::::::......................
...........................................................:--=+*****+++++++====--:--------------==========+++++++++++++++++++++++++++++++====:.................:::.:.::::::..:::::::::::::.............
...........................................................:--=++**++++++===----::..::::----:::::::------====+++++====+++++++++++++++++++++++++====-:...........::::::::::::::::::-------::.............
...........................................................::--==+++++===---::::.........::.........:::::----==========+++++++++++++++++++++++++=+++======--:...::::::::--:::::::::::::::::.............
............................................................:--==+++===---:::.............................:::-:---=====+++++++++++++++++++++++++++++++++================----------====-=-------=--------
.............................................................:=+++===-:::.......:--:...........................:-----=====+++++++++++++++++++++++++++++++++++++++======================================-
.............................................................-=++==--:........:-::.....::::.....................:-------====+++++++++++++++++++++++++++++++++++++++++======++++=========================
............................................................:====---:.................:::..::.....::.............:---::---====++++++++++++++++++++++++++++++++++++++++++++===+++========================
............................................................-===--:..................::....:::...::---===--:.......---------===++++++++++++++++++++++++++++++++++==+++=++===============================
..........................................................:====-:..................:....::::.....:=+**#*+=-:::......-=--------===+++++++++++++++++++++++++++++++++=======+===========================---
........................................................:-===-::.....:--:...........::::::-::....-+######*=-::......:====------==+++++++++++++++++++++++++++=+++=+==================--=====-------------
..................................................::---=====::......::::---:......:-=-==----:...:=*######*=--:.......-==========++++++++++++++++++++++++++++++++================------------------------
.............................................::-=+====-----........::....:---:...:-=====---:...:-+*######*=--.........-========++++++++++++++++++++++++++++++======----=====----------------------::::::
......................................:::----==+++=----:-:..............:..:-:..:-======-:.....:-+*######+--:..........-=====+++++***++++++++++++++++++++=======---------------------------:::::::::::::
.................................::--=====--:::--------::::........::--=+=-:.:::-======--......:=*#######=-:...........:==+++++++******++++++++++++++++++=====----------------::::::::::::::::::::::::::
.............................::----:-::::....::--:------:::::::--====++****+-.:--======--.....:-+*######*=-:............-=+++++********+++++++++++++=======------::::::::::::::::::::::::::::.....::....
............................:--:.....::::....:--:::::::::--=====++*+++*******-:-==+====-:.....:-+#######+=:.............=+++***********++++++++++========-----:::::::::::::::...........................
...........................:-:................:.:::------=+=====+====++*******-=+++++==-:.....:=*#######+-...........:=++*************+++++++========-----::::::.::.....................................
..........................::-:..........:-----:--====--==+=--===++*+++*******+-=++++===-:....:-+*####**+-:.......:-=+********+++++**++++========------:::::.............................................
..........................::-:........::-====----===+=--=++++++*********+++=++===++====-.....:-+#####*+=---===++++********++++++++++++======------:::::.................................................
..........................:::--..:::--====----====+=+++***+++******+++++++++++=========-....::=*###**++++++++********+++++++++++++=====-------:::::.....................................................
............................:---..:-:----======+++++*******++++++++++++++***++-=======-:....::=+**++++++++********++++++++++++=====-----::::::...................:=+++=.................................
.............................:--:..----=-=+++************************+++++===========-:..:..-==+=====++++++++++++++++==========----:::::...................:-=+++======-................................
.............................::---:.--:::=*****************************+=----========-::..-==============++++++============----::::....................-=++++++++=======-:..............................
..............................::---:.=+=+++****************+++++++++===-:----=--=====-::-=++++++==--==----===========-----::::..................:--====++===========-----:..............................
................................:---:.=+****************************=-==--=+++=----=--:-===++++++=-------------------:::::...............:--================---------::::::.............................
................................::----:+***************++**********************+-----::---======--::::::::::::::::::......................:----------::::::::::::::::::::::.............................
.................................::----:+*****++++**+***************************+:::-:::::----:::::.......................................::::::..........................:.............................
..................................::----:-*****++++++++++************************=:::::...:.:--:...........................................::...........................................................
.....................................:---:-+++++=====+++**************************==-::.....-######-:...................................................................................................
......................................:---::+++++++==-=++++***+++*****************+=--:.....*######-:....::.............................................................................................
.......................................:-:::.****+++***++====+*****+++++++++++++***=--:....:######*-:...::....-.........................................................................................
........................................:-:::.*+:-+++*++=:------=***+++++++*******++=-::...=######+:......:...-.........................................................................................
.........................................:-:::.:-::-===-=-::--:-+*++**+********+++******=..*######-:....................................................................................................
..........................................:::::.::--=+==---:--+++++*********************:..##*###*:...--................................................................................................
..........................................=:::::.:-:-----:::--:-+**********#***********+..:######=:...*++...............................................................................................
...........................................-:::::..:::::-:..--=*********+***************=.=*#####-:..=*++*..............................................................................................
............................................=:-:::..:-:-::::=***#*++********************+::-+***-...:*+**+--............................................................................................
................:............................=:---:..-=+*****-=-==+*********************=::----:...+**+-==:.:.........................................................................:.................
..............................................=:----:+*+=+++*=**************************-::--=-:..-*+++++*==-=-.......................................................................:-................
....................:..........................-:---::-+-*******************************-::---:...-++**+==+++=-=...................................:::-:.......:.-=-:--::------::--::::-:...............
................................................=:--::--++=+***************************+*:..:::...-+++=++=:..--.:...................................:-:---:...:.........................:...............
.........................:::::...................-:---:::*+***************************+*++=-.......:===-:-..........................................:............................:::::...:..............
..................................................-:--::.:****************************+++..:.......::....................:--:-.......................:...:::::::---------------------:...:..............
.........................................:--==-----=---::.:****************+:-::====++--:......-+-.......................:---::......................:-:-----------------------------:...::.............
.........................................:=+++++==++====--::**=*******++====-=+*#*:-==-::...........................::...:--==-:......................:-------------------------::::::....-.............
.........................................:-=++++==+++++++====*+=-:.:*+****+*+-=**+.--:-:.......................::::......:-====--......................:-::----::----:--::::::::-::-------:.............
..........................................:-=======+++++++++++*++=+*****++***=--+:.........................:::...........:--=====-:.....................=----====---....................................
.......................:....................::---===+++++++++*+**++**++*+++=--.........................:::................:-======--....................................................................
.......................*:..................::.::---====++++++********++++++===-::.......:.........:::.....................:--=======-:..................................................................
.....................:.=-.:::.:........:........::----===++++++++++++++++++++++++===-:......::::............................:-========-.................................................................
........................:.::::::-..................::---====+++++++++++++++++++++++++++++===-:..............................:--=========:...............................................................
....................................................:-----=================+++++*********+++++==---:.........................:-==========-..............................................................
........................................::::::::..:::--:::---===============++++++***+++*+++++*++++++===-::...................:--=========-.............................................................
................................:.::::::::.........:::::::::::---====--======++++++++++++++++++*******++++===--::..............:--=========-:...........................................................
.............::.....................................:::---:::::::-----=======+++++++++++++++++++*********++++++===-:............:--=========--..........................................................
....................................................:------===---:::---=======+++++++++++++++++++*************++++++==-:........::--==========-:........................................................
....................................................:----===+++===----:---======++++++++++++++++++++*************+++++++==--:..:::---======+====-:......................................................
.....................................................:---==++++++++++===------======+++++++++++++++++++++++++++++++***++++++===-------===========-:.....................................................
......................................................:--===+++++++****+++==-------====++++++++++++++++++++++++++++++++***++++++=================---:...................................................
..................................-=====-:.............:--====+++++*******+++++===-----==++++++++++++++++++++++++++++++**+*+++++++=================---..................................................
.................................:==+++====-:...........---=====+++++++++++++***+++++=======+++++++++++++++++++=+++++++++**++++++++++=================-:................................................
.........................................:=+++++++++++++++++++++++++=========================================-:--::::.:..:...:::::::::.......-----------------------------------------------------------
.........................................:=++++++++++++++++++++++=+=======================================-::::::::::::::::::::::::::::.....:-----------------------------------------------------------
.........................................:=++++++++++++++++++++++++======================================::::::::::::::::::::..::::::........:----------------------------------------------------------
.........................................:=++++++++++++++++++++++++====================================-::::.::::::::::::::...::...::...........--------------------------------------------------------
.........................................:++++++++++++++++++++++++================================---:===-::.............:::.::....::::..........-------------------------------------------------------
.........................................:++++++++++++++++++++++++==========================-:::::::::::::::::............:::::.:::::::::..:......------------------------------------------------------
.........................................-+++++++++++++++++++++++========================-:::::::-::...-.::::.:..........::::::::::::::::..::.....:-----------------------------------------------------
.........................................=+++++++++++++++++++=+++======================-::::::......:.:.::.:....::.....:.:::::::........::.:.......-----------------------------------------------------
........................................:+++++++++++++++++++++=======================-::-:..............:.::::..:::....:.:::::::.........:...:.....:----------------------------------------------------
........................................=++++++++++++++++++++=====================--:::::..................::.....:::::....:::::..........:.........----------------------------------------------------
.......................................:+++++++++++++++++++++===================-:::::::....................:.......:::.....:::..........::.........:---------------------------------------------------
.......................................=+++++++++++++++++++++==================::::..:...................:..........::::.....:::::....::::::.:......:---------------------------------------------------
......................................:++++++++++++++++++=++==================-..........................................:...::::::....::::::.......:---------------------------------------------------
......................................++++++++++++++++++++++==================-:::...........................::...............:::::.....:::::.......----------------------------------------------------
.....................................=+++++++++++++++++++=++==================..........................::::----:::...............:.......::........:---------------------------------------------------
....................................-+++++++++++++++++++++++==============-::::::...............::---------------------::.........::......::.........:--------------------------------------------------
...................................:+++++++++++++++++++++++===========:::::::-:.............::-----------------------------:...............:::::......:-------------------------------------------------
..................................:++++++++++++++++++++++++=========:::::::..............:------------------------------------.............:::::........-------------------------------------::::::::---
..................................=++++++++++++++++++++==++=====-:::...................:----------------------------------------:..........:::::.........:----------------------------:::::::------::::-
.................................=+++++++++++++++++++++=+===-:::::::::...............---------------------------------------------........................:--------------------------::::::-------------
................................-+++++++++++++++++++++=-::::::::::::::.............:-----------------------------------------------:......................:--------------------------:::----------------
...............................-+++++++++++++++++==-:::::::::::::::..............:---------------------------------------------------......................--------------------------::--------::-------
..............................:++++++++++++++=-:::::::::::::::::................:----------------------------------:::::::------------.........::..........--------------------------------::::::::-----
.............................:+++++++++++=-:::::::::::::::::::::...............:-------------------------------:....:.......:::--------............:......:--------------------------------::::::::::---
.............................=++++++=--::::::::::::::::::::.::................:-----------------------------::=*####***+++==-:...:------..................:-------------------------------::::::::::::--
............................=+++=-:::::::::::::::::::::::::..................::::--------------------------=###############**++=-..:-----..................:------------------------------::::::::::::--
...........................-=::::::::::::::::::::::::::::.:::...............-:::::-----------------------+###################****+=..:---:...........:......------------------------------::::::::::::--
..........................:::::::::::::::::::::::::::::::..................::::::::---------------------###################******+++-.:---..................------------------------------::::::::::::--
.........................-+-:::::::::::::::::::::::::::::.................:::::::::::-----------------=###################******+++++=:---:.................------------------------------::::::::::::--
........................:++=::::::::::::::::::::::::::::.................::::::::::::::--------------=#**###############******+++++++==:--:................--------------------------------::::::::::---
.......................:++++-:::::::::::::::::::::::::::-=:.............:::::::::::::::--------------***###############******++++=+====-:--..............:---------------------------------::::::::-----
......................:+++++=::::::::::::::::::::::::-+=:...............::::::::::::::::-::::-------*****++===++++**********++++=======----.............:-------------------------------------:::-------
......................+++++++-.:::::::::::::::::::-++-.................::::::::::::::::--::::------+***++++======++**+++++++++++=======-:--..............:----------------------------------------------
.....................=++++++==-:::::::::::::::::-+=:...................::::::::::::::::::-::::-----**++=-::::===++***+==-------======---:::...............:---------------------------------------------
....................=++++++====:.::::::::::::::=+:....................:::::::::::::::::::-:::::--:+****+++-:---=+*##*+------====-------:.::.................--------------------------------------------
..................:=+++++++=====::::::::::::::-=:.....................:::::::::::::::::::::::::::-**#####***+****##*+=--::..::---------:.::..................-------------------------------------------
.................:++++++++=====--::::::::::::-=:......................:::::::::::::::::::::::::-=+**#########****#*+=====+=---::---:--:..-:..................-------------------------------------------
................:+++++++++=====--=:.::::::::-=:.......................::::::::::::::::::::::::-:+**###########**##+=-==++**+=---------:.:-...................-------------------------------------------
...............-+++++++++=====-----::::::::-=-........................::::::::::::::::::::::::=++****#######**+++=---=+++****++====--::.::..................:-------------------------------------------
..............=+++++++++=====-------::::::-=-:.......................::::::::::::::::::::::::-+=-+****######*=::-:.:-=+++****+++++=--:..-:.................:--------------------------------------------
............:+++++++++++=====--------::::-+-.........................::::::::::::::::::::::::-***++****#####****+=--.-++++++++++===-:..::...................--------------------------------------------
...........=+++++++++++=====----------:.-=-..........................::::::::::::::::::::::::-**+++*****#####*****+==++++++++====--:...:....................::------------------------------------------
.........-++++++++++++=====------------=-:............................::::::::::::::::::::::::**++++*****+=-------==++++======---:..........................:::-----------------------------------------
.......-++++++++++++++====------------=:..............................::::::::::::::::::::::::-==+++++++*******+=:::-======----::...........................:::::---------------------------------------
....:=+++++++++++==++====-==--:::::-+=:...............................::::::::::::::::::::::::::=++++++++++========-:-===-----::.........:..................::::::--------------------------------------
:-=++++++++++++========--:::::::......................................::::::::::::::::::::::::::-+++++++++++==-:::----------::..............................::::::::------------------------------------
=+++++=+++++===+++=-:::::..............................................:::::::::::::::::::::::::-===++++++*****++===-------::..............................::::::::::-----------------------------------
==========+==-:::::....................................................::::::::::::::::::::::::::-===+++++*****++==------::................................::::::::::::---------------------------------
=========::::::.........................................................::::::::::::::::::::::::::---=============----:::........:........................::::::::::::::--------------------------------
=+--=+=::::..::.........................................................::::::::::::::::::::::::::==::-------::::::::::........::.........................::::::::::::::::------------------------------
=:::::::.................................................................::::::::::::::::::::::::-===-........................:..........................::::::::::::::::::-----------------------------
:....::...................................................................:::::::::::::::::::::::+*====-.....................:.........................::::::::::::::::::::::---------------------------
...........................................................................:::::::::::::::::::::-*##+==+==:...........................................::::::::::::::::::::::::--------------------------
.....................................................:::::.................::::::::::::::::::::=*###*+=====-:.......................................::::::::::::::::::::::::::::------------------------
................................................:-:.::::::-.................::::::::::::::::::=*####**++==---:....................................:::::::::::::::::::::::::::::::-----------------------
...............................................:---:.:::::::.................::::::::::::::::::::::-+***++=-::::................................:::::::::::::::::::::::::::::::::::---------------------
................................................----:.:::::::..................::::::::::::::::::::::::-=++++=-:::.............................:::::::::::::::::::::::::::::::::::::--------------------
..............................................:------:.:::::::....................::::::::::::::::::::::::::-=+-.............................:::::::::::::::::::::::::::::::::::::::::------------------
:..........................................:----------..::::::......................::::::::::::::::::::::......:::....................::::::::::::::::::::::::::::::::::::::::::::::::-----------------
::::...................................:-------------=-..:::::...........................:::::::::::................................:::::::::::::::::::::::::::::::::::::::::::::::::::::---------------
:::::::.............................:-----------------=-..::::.....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::--------------
:::::::::::::...................:---------------------==-..:::.....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::------------
::::::::::::::::::...........:-===--------------------===-..::....................................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-----------
:::::::::::::::::::::::...:-=======--------------------===-..:.........:........................................................:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::---------
++-+*++*++==+++++*******=-----********+++++=+****+*******+***+++*++***************+**+++*************************++=-::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-=++++*******
*++*++++++++++++++*****+:::::-++***+***++++=++++++*******++==+****+************************+****************************++=--::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-====++*+
++**+++===++++***+*****=::::::-::---+*++*=+++++++*+::+*****+==++++++********************************************+***************=-:::--:::::::::::::::::::::::::=:::::::--::::::::-:::::::::::::--::::::
=**++++===-----=++*****:::::-***++=***+*+==++++++**:-*+++++===+++++**++*+**************************************************************+=-:::-:::::::::::::::::::::::::::.:::::::::::::::::::::-::::::::
+++*++==-------=-=====-:::::+***++***+++===++--+******++++++=++**+=--=+++**+++*++**************************++++++*****************************-----:-:::::::::::::::::::::::::::::::::::::::::::::::::::
+++++++---------=====-:::::::+*******+++-+++*+#+:#=++==+*+==+*+++++***++++++++**++*+++***********++*******++++***+++**************************-+*=-:-::::----:::::::::::::::::.::::::::::::-::::::::::::
+++++++====---=======::::::::++***++++++=+++++**####**++++:++++:+++*+=+++++++++++*+++***++++*****+*++****+--=+*****+*******************************+==::::::::--::--::::::::::::::.:::::-:::::::::::::::
----=++++++++++----=-:::::::-:-+++++++*=-=*+****#+**++++-**=+++**=*=---+++++*++===++++++*++++++++++++++*+++++++++++**************************************+==-::::::------:::::::::::::::::::::::::-:::::
++++++++++++++=::::::.::::::-::-:-+*+*+*++++**+**.+*+++===-+++++**#*+++++++++++*#=++++++++++++++++++++*++===****+++*******************************************#**+-:-----:::::---::--:::::::::::=+::::::
++++++++++++++++=::::.:.:.:::::=-+++++++**+-*+****+***+++++++++*+*:++++++++=+*+**==+++++++++++++++*++++++*+*+++*+************************************************+:-:----:::::---:::----::::::::::::::::
==+++*+++++++++*-::::::::-::.::+++++++++***+++*******+*+==*****+**+=++++++**=:=#*+**+++++++++++++++++++++=--==+*++***+*************++**********************++****---------:::--:-----:--:-:------:::::::
:-:::::-=+*****=::-::-:::::::::++===+++===+++*****+++*+=:=+**+=******++++++++*##*+=+*++++++++++++++++++==++==*++*+:-++***++*************************************+=--:---::::-::-::-------::---------:--:
:::::::::::--:-----::-::::::::-::=+++=+==+====+++++++*+--::++*+********+***+++*++++++++++++++++++++++++++--=++++++**++++++*******+******************+*************--:::-::-::--:-::------+**++=-----:++=
---::--:-::::::::::--::::::::=*****+++++++===++===+++++*****+********+**+**=+*#=:++++++++++++++*+++++++==+=+--:=+***+*+++++***++**+*+++++++*+++***++******+**++++**+=-:::--:::----------=**********+=---
::::::::::::::::::--:::::::::++++***+****++++*++++++++++*****+****++*#*+***=+***+-++++++++++++*++++++++=-=+++=*##+---+++++++++***++++++++++++++**++++++*=++**++*****+::::-:::--:----:--+*+*******+*+++**
::::::::::::::::::::::::::::-***********++*+******+++++++**+=+*****+==********+**+++++++=+++++*++++++++===-+++++#**++-++++++++++++++++++++++++++++++++++=+++*****+**=::::::::::-:::--+++*+*++++*******++
........:::::::::::::::::::-::::--++++++*****+**********++++++*++++*#*+*+*++*****++++++++++++++++++++:-*+=-+++**+=++=++++++++++++++++++++++++++++++++++++++++****+*+-:::::::::--::::-++***+*******++****
...::---::::::::::::::::::::::::::::::::-+**********************+++*+**+++++*******+*+*++++***++++++++++**+++=**+++=+-++++++++++++++++++++++++++++++++++++++++++***=:::::::::-::::::+++*++**************
=-:::.:::::::::::::::::::::::::::::::::::::-::-+**************+*****+**+++++*++++++**++**+***++++++++:--++++++++++++=:++++++++++++++++++++++++++++++++-+++++++***++::::-::-:---::::-***++***************
+++::::::::::..:..:::::::.:::::::::::::::::::::=******+************+*********++++++++++==*****+++++++*+++==+++++++++=:+++++++**++++++++++++++++++++++==*+**++*****+:::::::::---::::=++++****+=++++++++**
++**=:::::::::-::::::.....::::::.-*:::::::-::::-*************+***************++*+++++*++**++*++++**+=--*++++++++++++==++++++*****+++**++++**+++=-+++++==+*****+*+*-::::::::-::::::-++++*+*++++++++++++++
:++***=::::::-:::::::::::.:....:::-:::::::::::::::=*****************+**********+++++**+++*+*++++++++++*++***+++++++++++++++++++++++++-+=+++++++++++++++*+*#**+*+*+::::::::--::::::=+++-++++:+===++++*+++
..=++*+:::::::::::::-=**=::-::::-*-..:::::::::::::::::-=+************************+++++++*+**+++++++++*++*+++++*++*+++++++++++*+++++=*+++++****+++++++++*+++++****-::::::::-::::::-++*+++++=+=+++*++++*++
-.:++*-:::::::::::-*******+**=+*=::+:-...:..::::::::::::::::::-+*#*************++++==++**+*+++*+++*++++++*++*+++++++++****+++*+++++=+*+++=++++*++++=.-+***+++*+*+:::::::::-::-:::=+*=+*++++++++++++++*++
-.:+*+::::-::::::+*****+********+*++***=++=-::..:.::::::::::::::::::-=+****+++***##*+++++*******++++++++++++++*+*+++++++++++++****+++++++++**++++++**+**********-::::::::-:::::::++*=*++++++++++++++++**
-::=+-:::::::::-*********************++==+++****+=--::::::::::::::...=-:-*#*++++++*++++****+*++*+++++++++++*+++****++++++++++++++++*++***++*+++++++++++*++*****+:::::::::-::::::=++*+*+++++*++*+++++++*+
:..+++=-::++*--+=.:+****************+=++***+=+***++****+=-:..::...-*##+...::::::::-=++*******+**++++**++++*++**++*++*+**+*+++++++++++****+++***+++++++**+******-::::::::-:::::::++*+++++++++++++++++*+++
-.:+*=:==++=====:...-+************+=+********+=+************+++##=:.:*--==-:::::::::::::-==+******++++*******+**+++*******+******++***+*+*+++=-=+*+++++++++***+:::::::::-::::::=***+*+++=++++++++++*+*+*
-.:++-::::::=+=..:-:::-+*********++**********+*+=******++++##+=++****=-::::::::::::::::::::--::-=++**++****************++****+**********************++++++++++-:-:::::::-:-::::++*+*++=+=+*++++**+**+*+*
-::+=::::::-+=..-=--=:.:=******+=***************+==+**+=*#=+++++++++++*****+=-:::::::::::::::::------::-=******+**********+**+*****************************+++::::-::::::----:-++++++===++*+************
-.:+-::::::==..------=-:.:=**+=*****************+++==++#=::::::::::::::::-=++*****+=--:::::::::-:-:::::----::-==+**************************++****************=::::-:::::::::==++====+==++*++************
:.-=::::::-+:.---===-----::-=+********************++=-#:::--=====-=-===--:::::::-=++*****+=-::::::::::-:::::::----:::=+********************#:=*************++::::::::::--::-++++++++++++**+*+***********
::=-::::::=-..---====-=----::-+*****************++++-*-:----===-----=-------==--:::::::-=++*****+=-::::::::---:-:-:----------=+************##:-***********++=::::-:::::--::+***+++++*++++**+************
.-+::::::-+:.---==-----=-----::-******************+++*.:------:---------=======-====---:::::::-=++****++=-:::::::::-------------::--==******##+=****=-=+++++-:::-:::::::-:-**********++++***************
.=-::::::==..--==--------------::=*****************++*.-==--=-------------=----=-=====-=------::::::--=+++****+=-:::::::::----:-:::::..:::-+*##=:+--::::::::::::::::::::-:=*****************************
:=:::::::+:.:-==-=--------------:::=**************+=*=.:=---==-----------------------------===--==--:::::--+**+=+++=+=--::::::::::::==.....-=+##*::::::::::::::::::::::::-+*********************++******
=-::::::-=..---==-----:-----------:::+*************+*+:.:=--------------------:::----------------------=--::::=++***###*+=+++=-:::::-:::+++==-++++......::::::::::::::::::-=++*********************+++++
+:::::::+-::------:::::-------------::-************+**=:.:=--=--------------::::::::::---------------===---=-::::-+*+++=+##+++*****+##:.:--=+*#######*=-:::::-=::.::.::::::::::-*************+**********
=::::::-+..-----=-----:::::::---------::-**********++#=+:::--==------------:::::::::--::::::-------------==---=--:::-++*+++#++**++=+++****+==###*-:::::::::::::::::::::::::::::+**********************++
-::::::++.:----=-------===-----::::----:::=*********+#==+=::--=-------------:----:::-::::::::--------:-------=---==--::=++++#+++*******++++=*##***=--::::::::--::::::::...::::::=****************++****+
::::::-++.------=----:--:::---==-------:-:::=*******=#=+**=::--------------:::--:::::::-::::-------:::---------===----:::=++#=+***********+##=++++++****+==::-::::::::::......:::::-=+***********==+***+
:::::::=+:--==-------:-------:-------:::::::::+****++*#+***=:::-----------:--:---:::::.:::::::::---:-:----------===---=--::-#++***********#***********++=++--:::+=-::::::.:::::::::::+=:::--=+**====****
:::::::+=----------------------:::::-::----:::::+++**+#*+****-::--------------:::-:::::-::::::::-:::::-----:----====--=-==-.*++****************************+++==******+=-:::...::::::-::::::::::--==+***
.:::::::-=-----------------==------:---:-------::-****+#*+*****:::-------------:------::::-:::-::--:---:---------====-====--#:++**************************++*+*++************+=-::::::::::::::::::--::::
:-=+=-::=+--------------===--===-----------------::-***+**+*****+:::-----------::-:::::::-:-:::-----------------===-:-==---#=:++************************+*+*+***++*******+***++++++++=--::::::::::::::::
::::.::-+++=------------------=-=------------==----::=**++#++*****+:::-----:----------:::-:::-::-:::--:::-:---====-====---#-:=+**************************++***++*++++++++++++++++++++++***++=--:::::::::
--:...:=++++=----------------=====-----------=-==----::+**+##++*****=:::::::----------------::-----------------==--::::.-#-=++++++********************************+=-::---:-----:::-::::--=++****++=::::
...:.:-=++++++=----------------=-=--------------------:::+*++#*+++****=:::----::---------------------------::::::-:--=*#+=++**********++++**********************++----===========--===---::::::--=++****
........:.::-==++----------------------:-------------=--::-++++*##+++**+-::---------:::--------------::::.:::-==+==+#*++*******++++++++++++****++**************++::-==-======---======-:-----------:::--
..........:::::::::-====---=-=---==-------:---------------::-***+=+##*+=++:::---:----::----::--::....::-++++==+###+++*****++++++++++++++==+++****++++++++*****++::-======--==----=-------:--:-----=---::
.............:.::::::::::::-=========-=---------------------::-++***++++*#**==:-:::::::::......::-======**###*++++++*+++++++++++++=-:::::::-+++***+++++++++++++=::-==-==----==========------------======
..............:..:.::::::::::::::--====----------------------:..-*******+++++--:=++*******###########**+++++++++++++**++++++=-:::::::-==---::=+++***++++++++++++::-=---=-------------------------------=
....:::.............::::::::::::::::::::-====------------------:..=*+*+********=:.:-=+++++++++********+++++++++++++==+=-:.:::::--=----:::---:::=++****++++++++++=::-===--:-:--------:--::---------------
...........::..............:::::.::::::::::::::--===--------:----:.:+***********++++++*********++++++++++++++++=-::::::::--:::--------::::----:::=+*****++++++++=:::-----:-----:::-:--:-:-:-------:-----
:::...............:--:.............::::::::.::::::.:::-===--------..=++++****************++++++++++++++++=-:::.:.::--::------::::-------------=-::-+*****++++**=++=::---------:::----::::::::--:::--:---
:::..:::::::............:-=:............::.::::::.::::::::.::--:::++++++*****++++****++++++++++++++=-::::..::--:::::::-:::::---:::::------------=-.:-+*+***++++++++=:.----=------::-::::::.:::::::::::--
:::::::::::::::::................::.....................::.::::...::===+*+=++*+**+++**+++++==-::::::::-----:-------:::::::------::-----:::::::::---:::=+***+++++++++=::------------:::::::::::::::::::::
:-==--:::::::::::::::..:..............:--:............................:...:-=+**+*+++**+++::::::-----:::::::-----:----::::::-----------------:------::::=++****+++++++:::--------:--::::::::::::::--::.:
----=---===--:..::::::::::::::...:..............:........................:.::...::=+***+**++=::::-------:-------::--------:------------------::--------:--+******++++++-::----------::::::::::::::::::::
::::::::------====--:::::::::.::::::::::............::::......................:::......:-=+*=-+-:::------------------------------------------:--:-:----=-::-+*****+++++++-::---------:::::::::::::::::::
..:::::::::-----------===--::::::::::::::::::...............................................:::-=+------------------:-------------------:---------:::::--=-::-+*****++++++=:::--------::::::::::::::::::
.......::::::::::::::---------==--:.::::::::::::::................:::...........................::::::-===--------------------------------------::--:------=-::=******++++++=:::--:::---::::::::::::::::
.:.....:.:::::::::::::::-----------==----::::::::::::::..::......................................:::::::::::--===---------------:--------------:--------------:::=******++++++=:::=----::---::::::::::::
......:::::::::::::--:::---::-::::::-------==-:::::::::.::::.::................::::...................::::::::::::::-===--------------------------:::::---::----:::++*****++++++-::----------===--::::::
========================================================================================================================================================================================================
========================================:::::--:::::-=::-=====-::====-:-====--=====:::::-=====::::::=:-===-:-:::::::=::::::=-::====:-==-::::-==-:===-::::===-:-====:-===================================
========================================:-====-:======:::=====:::====:-.====:-=====.-=========:-=====-.-==.-====.-===::=====-::-===::=-.====.-=::==:-===-.==-::-===:-===================================
========================================:-====-:======:-:-===-:-:===-:=::===:-=====.-=========:-======-.=:-=====.-===::=====-:=:-==::==:-======::=-.=====:-=-:-.===:-===================================
========================================:::::=-.::::==:--:===:--:===:-=-.-==:-=====.::::-=====:::::-===-.-======.-===:.::::=-:=-.-=::===-.:-===::=-.=====:-=-:=-:==:-===================================
========================================:-====-:======:-=:-=-:=-:==-:===-:==:-=====.-=========:-======-.-.-=====.-===::=====-:==-.=::======::==::=-.=====:-=-:==-:=:-===================================
========================================:-====-:======:-=-.=:-=-:==:-----.-=:-=====.-=========:-======:-=-.-====.-===::=====-:===::::=-:====:-=::==:-====:-=-:===:::-===================================
========================================:-====-.-----=:-==-.:==-:=-:=====::=::----=.-----=====:-----=:-===-.-===.-===::----=-.====:.:==::--::==::==-:---:-==-:====:.-===================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
========================================================================================================================================================================================================
==============================================================::--:--------------------:-----::::---:---::--------------------------------:=============================================================
==============================================================--:=====================-:--=========--==========--:-====================----=============================================================
==============================================================-=---===============---==-===========--===========--==---==============--=-=-=============================================================
==============================================================-==-=--==========---=====-===========--===========--=====---==========-==-==-=============================================================
==============================================================-==--==:-======--========-===========--===========--========--======--==-===-=============================================================
==============================================================-===--===--==--==========-============-===========--==========---=--===-====-=============================================================
==============================================================:====--====:-============-============-===========--============-:====--====-=============================================================
==============================================================-=====--=--=--===========-============-===========--===========:==--=--=====-=============================================================
==============================================================-======---====--=========-============-===========--=========--=====:-======-=============================================================
==============================================================-======--=======--=======-============-====================--======----=====-=============================================================
==============================================================-====--==:========-======-============-==================--========-==--====-=============================================================
==============================================================-====-====-========--====-============-===========--====-=========-====--===-=============================================================
==============================================================-===-======-=========--==-============-===========--==--=========-======--==-=============================================================
==============================================================-==-=======--==========---============-===========----==========--=======-==-=============================================================
==============================================================--::---------------------:------------:-----:-----::-----------:----------:--=============================================================
==============================================================-=-==========--==========---==========-=========--=-==========--==========---=============================================================
==============================================================---===========--=========-==--========-========:-==-=========--============--=============================================================
==============================================================--=============--========--===--======-======--====-========--=============-:=============================================================
==============================================================---------------=-------=------==----::::::--:===----=====-=--===-==-====-===:=============================================================
==============================================================--===============:=======----::-:--:=-:--:----:::-=-=======-================-=============================================================
==============================================================--================:-------::--:-::-::-:-::-:--:-::-:-------=================-=============================================================
==============================================================-----------=---::---=----:-:----::-:--:--:-:--:--:-:=--------::-------------:=============================================================
==============================================================--====--::::-:--:-::-:--:--:----::-:----::-:--:--:----:--:-:--:--:-:::--====-=============================================================
==============================================================-::::::::::::::::::::::-:::::::-::::--::::::--:-:::::-:::::::::::::::-:::::-:=============================================================
==============================================================--:-------::-------------:-----------------:--------:------------::---------:-============================================================
==============================================================----:--:--------------------:------:::.:::------::----:--------------:---:--:-============================================================
==============================================================-:---::----------------:----=::----:......---=:------:---------------=-:---:--============================================================
==============================================================--:=:--:---------------=----:------:......-----=:--------------------:--------============================================================
==============================================================---------:------------=--:--=--=---:......=-------::---------=-------=----:---============================================================
==============================================================--:------=----=-----------:-=------:......-:=------:--------------------------============================================================
==============================================================-:--:-=----=--=--=----=:---:=----=-:......----------=:----=--=-=:-=-==---:=---============================================================
==============================================================-:-------=----:------:------:--=---:......-------:-----:-----=:---=----=--=-:-============================================================
==============================================================----------------:------------------:......------:--------:--------------------============================================================
==============================================================-------:-----:----:-------:--:-----:::::..-----:-----------:=---------:-------============================================================
==============================================================--------:-------:---:--------------:----------:----:-----:-----------:---:----============================================================
==============================================================-:--:::.::--:.:.:---:.:::-:-:.:.:--::::::.---:::::---:::.:=--:::::=-::::::=-:-============================================================
==============================================================-:-=:....=--:....=--....:---....:=::......:--.....=:-.....=--....:---.....=---============================================================
==============================================================---=:....---.....---.....::-....::-:......-:-.....-:-.....=--.....---.....----============================================================
===============================================================--:--=-=:---=--==----==-=:---==--::......-::-====::=====---==--=-=:-=-=--:---============================================================
===============================================================---:--:------=--:----=---:=--=----:......---:==:---==-==---:=-=--=-=:-=-:=---============================================================
===============================================================--=:....--=:....---.....-:-....:--:-=-==---=.....--=.....---.....--=.....=---============================================================
===============================================================---:....---:....---.....-:-....:--:----:----:....-:-.....---.....---.....=---============================================================
==============================================================--:-:....--::....---.....:::....:-::--::=--:-:....::-.....---.....::=.....-:--============================================================
===========================================================-::-:--::::-----:-:--:-::-:--:-:::::::::::::.::-::-::-:=::-::::::::::-:-:::::-::---:=========================================================
========================================================-----:----:---=---::-:--:-------:--:---=:::.....-:---=---:----:--:--:-::-::------:=----::-======================================================
=====================================================-:-=----:---=-----=--:--:---=--=---::::----:-..:.::::---:::::---=---:--------=--=::------:----:-===================================================
===================================================-:----------:-------------:----------::::----:-.::.:.-:----:--:-----------=---:----:---=--=--------:=================================================
================================================-:-=------------=--=--=----:-::-:-------:---=-:=--......---:-=---:=------:-:--:---=---:-----------=-----:-==============================================
==============================================::-:--::-:--:-::-:::::::--:-:-::-:::::-::::-::----:-.....::-----::::--------------------::---=-=---:=--=-----:============================================
==============================================::----::-:------------::-:--::::--:-::-:--:--:----::......::-:-----:----:--:----:--:--:-:----------:----::------==========================================
========================================================================================================================================================================================================
---------------------------------------------------------------------:.....................................................................:::----------------------------------------------------------
---------------------------------------------------------------------------...........................................:::-------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------:::.:::-----=-----------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------:-::::::::::-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------:..::::::::::::--------------------------------------------------------------::::----------------------------------------
------------------------------------------------------------------------------::...:-:::::.:::--------------------------------------------------------::::::::::--------------------------------------:-
------------------------------------------------------------------------------::...--:::::.:::---------------------------------------------------:::::::::::::::----------------------------------------
------------------------------------------------------------------------------::...---::::.:::--------------------------------------------:-::::::::::::::::::::----------------------------------------
------------------------------------------------------------------------------::...---:::-.::::----------------------------------------::::::::::::::::::::::::::-------------------:----------::-------
------------------------------------------------------------------------------::...---:::-.::::---------------------------------------:::::::::::::::::::::::::::--------:--------------------::::::::-:
------------------------------------------------------------------------------::...---::::..:::--------------------------------------:::::::::::::::::::::::::::::---:::::------------:::----::::::::::-
-----------------------------------------------------------------------------:::...---::::..::::-------------------------------------::::::::::::::::::::::::::::::::::::::-----------:-::-:::::::::::-:
-----------------------------------------------------------------------------:::...:-::::::.::::-------------------------------------::::::::::::::::::::::::::::::::::::::----------::::::::::::::--:-:
-----------------------------------------------------------------------------:::...::::::::.::::--------------------------------------::::::::::::::::::::::::::::::::::::::----------:::::::::::::::::-
-----------------------------------------------------------------------------:::...::::::::.::::--------------------------------------::::::::::::::::::::::::::::::::::---:----------::::.-.::::-::----
-----------------------------------------------------------------------------:::...::::::::.:::::------------------------------------::::::::::::::::::::::::::::::::::::------------:--::::-:---:::----
----------------------------------------------------------------------------::::...::::::::.::::-----------------------------------.:--::::.:::::::::::::::::::::::::::--::--------=--:-:.-:::--:--:----
----------------------------------------------------------------------------::::...::::::::.:::::---------------------------------.:::-::::::::::::::::::::::--:::::::::::---------=----:.--::--:-------
---------------------------------------------------:..::--------------------::::...::::::::.::::---------------------------------:::::--::::::::::::::::::::--::::::::::::--------==-:--::::::--:-------
----------------------------------------------------------------------------::::...::::::::.::::---------------------------------::::::::-:::::-:::-::--::::--:-::::::::----------=-:---:::..--::-:-----
----------------------------------------------------==----------------------::::...::::-:--:::::----------------------------------:::--::-:::::-:::------:::-----:::::::---------------::--.::::--:---:-
----------------------------------------------------===---------------------::::...::::::--:::::-===-------------------------------:-----:::::-----------:--:---::.:.:::--------------::----::.--::::---
---------------------------------------------------=+++=--------------------::::...:::--::-.:::--------------------------------------:--:::--------.--------:-:---:::::-----------:---:-:-:::::::::-----
----------------------------------------------------++++--------------------::::---::--=-::-:::::------------------------------------------------::-::-:----::::--::::::----------:---:::.--:.:::-------
----------------------------------------------------=+++=-------------------:::---:-:-=--:---:--=---=--------=----------------------------------..:.--::---:::-:::.:.::::---:-----:--:::::::::----------
----------------------------------------------------====--------------------:-=---.:-::-----------=======-=-------=--------------------------::::::::::-----::::::..::::::---:----:---::-:.:------------
---------------------------------------------------:----------=--------------=---..------=-------==========-------=------------------------::::.::::::--::--::::::::.::-::::-:-----::--:::--------------
---------------------------------------------------::==:-----------------------::--==------:=-=-:--=========---=-------------------------::::::::::-:-::--::::::::::::-.::::::---:---::::-:-------------
-------------------------------------------------=-..:==:--------=-----------:::...---------------=-----=====--------=-----------------:::---:::.::::::-::.::::::::::::::::::-:::-:-::::--:::.:---------
----------------------------------------------------::--------------------==-::::.:---------=-::---::::-=++=---------=---------------:::::::::..::..::--:::::::-:::::.:.:::::-:-:--:.::::..:..:---------
-----------------------------------------------------=--------=-------------::-------:::::::.::::.......:-==--=---------------------::::::::....::::.::::::..::-:::::::::..:-:::-:::---:.::...::--------
----------------------------------------------------+=--=-------------------=---:----:::::::.-:::::::::-----==----------------------::...:::...:.....:::::..---:-::-:.::.::.:-::::::::-:::....::--------
-------------------------------------------------------------------------===------:-::::.::...........::=----=-----==----------------:....:.........:....:.:.:-:-:-::...:...::::::::::::::::-:.:--------
------------------------------------======------------------------------------:::::::::-:::...:....:::::::--=------=-==-----------:::::......................:::::-::-.....:.:::.::::.::-:::::----------
-----------------------------------------=====------------------------------:::::::::---:::.:.::::::-::::-----==-----==---------:.::-::::..::....::.........:-:::::::::......::::::.::::::--------------
---------------------------------------------------------------------------=-::-------::::::::.:::::--=:-----=------------------.:.::--::::::::::--::......:-:-::::::..:......::::..::.:::--------------
---------------------------------------------------------------------------=--==-:----::--:::.-:::::-----------=----------------::::-:---:-:::------::....:-:::::.::..........::::.:::::----------------
-----------------------------------:--------------------------------------=--::::..------::::---::::-----------------------------::------:::---------:::.:--:::.:............::..::..:------------------
-----------------------------------::---------------------------------------::-=-:---=-:-::-+==--+++----=-------==----------------:-::::-:---:-------:::---::-:..:............::..::--------------------
----------------------------------::::-------------------------------------:-=-==-..:----::-:----------=-----------------------------::-----:---:------:::.:----:::..............:----------------------
----------------------------------::::---------------------------------------=---...-:::=-==-=-::-==-----------====------------------------:::-:::-:----:.:-----:..:.:........:..::---------------------
----------------------------------::::-------------------------------------:::::::-=::-::--:.:--:--------=----==--------------------------:::::::::-----::--:::-::....:::...:::::::::::-----------------
----------------------------------::::-------------------------------------:::::.:-==-:----.::-==----------------------------------------.:::::::::--------:::::-::..:...:::::::::::::::----------------
----------------------------------:::--------------------------------------:::::...--::::-=:.-::::-----=-===-----------------------------::::::::::::::---:--::::-:::.::::::::::::::::::----------------
---------------------------------------------------------------------------:::::....:::::-----:::::---------------------------------------::::::::::::::----::::::::..::::::::::::::::::----------------
--------------------------------------------------------------------------::::::.....::::---=----------------------------------------------:::::::::-------:::::::::.:::::::::::::::::::----------------
--------------------------------------------------------------------------::::::.-=========------==========------------------------------------------------..:::::::::.::::::::::::::::-----------------
--------------------------------------------------------------------------:::::::================----=----------------------------------------------------:..::::::::::::::::::::::---------------------
-------------------------------------------------------------------------:::::::.=================--==----------------------------------------------------:::::::::::.::..:::.::------------------------
-------------------------------------------------------------------------:::::::.=====================-----------------------------------------------------:...:::::::.:.::::---------------------------
-------------------------------------------------------------------------:::::::.=====================------------------------------------------------------:...:......:::------------------------------
------------------------------------------------------------------------::::::::.=====================--------------------------------------------------------:.....:::---------------------------------
---------------------------------:-------------------------------------::::::::..======================-------------------------------------------------------------------------------------------------
---------------------------------:------------------------------------::::::::...======================-------------------------------------------------------------------------------------------------
---------------------------------------------------------------------:::::::::...======================-------------------------------------------------------------------------------------------------
----------------------------------------------------------------------::::::::.::======================-------------------------------------------------------------------------------------------------
------------------------------------------------------------------------:--------======================-------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------======================--------=====------------------------------------------:::::-------------------------------------
-------------------------------:::-----------------------------------------------======================--------=============--------------------------------------------:-------------------------------
------------------------------::::------------------------------------------===========================--------===========--===-------------------------------------------------------------------------
-----------------------------::::::---------------------------------===================================--------===============--------------------------------------------------------------------------
---------------------------::::::::---------==-------------------------=--=============================-----------------=========-------------====================================-====-------=====-----
--------------------------:::::::::--------------===========================---========================----------------------========================================================---------=---------
-------------------------::::::::::::::------------====================================================--------====================================================------===========--------------------
..+#############*##**++++++..:#+-###--##*-##*-:--**#***+++++****--...:*########*++-*#*+=-=*:.:-+#####=.....:=.:###*###################*::-++...::::::::::::::::::::::::::+#-=###########+::+-###+++*####
..:########**+++++*####**####..:###--####=-*###*=+*=-==*****###=.*-+**++++++*#*+-...--==+-:::=###########=:....:+#=####################::::=+=..:::::::::::::::::::::::::*#*+*###***++=.-=:-:===++######
..:#####++++*################+:.-#-=#######*-################++.*++=-##+-..:=*+===++++**##=:+################=......+#################*-......::::::::::++-::::::::::::::::-=++++**##+:...:--+##+++*####
....+=..-*######*+#########:=*##:.:########**+#########**++*+=:..::-++#####*-::+######-*#*-=+++********#######+..+:.....=########*++*###.........::..:::++-:::::::::::-=+++****--:=+*###:..=####++++####
.....-#####-=##-:-:*#######+:.-*-=###########*-#*+--::::-=+######:=#=-+*+=::-*##########*-*:#*******#**********+..+**=:....:=++*#######*............=::...:::::::-=+++--=###*+-=*=-:=#*-=-..+###*+++*##+
.....+#########---:*###*..+#+##=:*###-*#+-:...--##################==:-*+-:+#-##############:*#**=::=#########*++-..:++#**=:.....=######...............:...::=++++-::::*=..-*+######*.:-+##=..####++++=.*
...=##########-:-:*#+.=----*=+=....-:+=######+##=##############=-*##=-::++=:=**#*********++:==:-=+=-##***+++===+**:..=+++=-=**-.....-=:.................=++=-:::::::*####+:-#####*-+::---##..*###++:.+++
*#########+::-:*=-##-..--..:-*=:*##=##*##########=########*+=+###=#*====--=====--========-::-===+*#*+-+########****+.....:-=**--=.......=*#*++-:=+-........:::::::*########+-+*==*##**:--*#=.=##*::+++++
###########=-:+#:=*:-#####-:=#####=####+######**++:+*#*--*#######*-###-:=+########*=*##**-::-+=+==*=:=+:-=#*=*########=:.......-*==++=....-++=+#*:.............*####**#*+--**:-###+*#*:--*##..#.-*++++++
#########==#:+#+::-*########=####=##==+-*########+--*##########+=###+:-*###########+:::::=#=###*+--*##*=+:+:+#########=...=*#########*++=-......:+*=............=*+**###*#==##*-=####*::*###-.-####*++*#
###########-+##--*##########=###=*=####+*###*+=+###+#########+=##*=-=**==*######*-:-++==:::-*#*--**+*####=....:+#################*++*=-*#####*-.....-+...........#######+*#***##=-*##---##=.=.:#########
##########*:#=::+###########=##=#+######-:-#########*######=+##+-==*##*==#####+::+##*-###-::=-:-*######*........-############*++*##*:*########****-.............=####=.-.....:=....=#--*=.###..*########
##########+-:=+-####-:######=#+##+**==+#=*###########+###-=#*====-+#####-**+-:-*###=*#####*::-###*++###-.........*######**+*+=###*-+####***##########*=........+=-::*#######+....:......*###-=.+########
##########--*#-+###*+++++**#+++*+-+=####+#############+-+####====*######*-:-**+*#*=###**+#-:-::*#####+=-..........+#**+**#++####+-##***-*#**##############=.....::+###*###*........:.....-##....########
########=::*#*:*#####*=++###=.+##+-#####*############:*+####*==-+########-::.###+=+#+*###=:+#=::*#######.::.....:++*####=*#####-=#+################++#+######*:......+###=...........:-....#*...=#######
**####*:=*:##=-#######*:=-=***###########+########+-*###+###+===##########=:+##==*=**+**-=-*##*::=#####-....-=+=:.-###++#####*-+*############....:####+####-=+####+:....................:..:#-...#######
##*##--##*-##:+#######=-++###+###########+######=:+######+##*==############-:+-+=*###=:-===#####-:-###=-=++=:...-=*=++######=+##############+.....=##+**+:=*#+########+:..................:.*#...+=--+##
###=:*###+-#+:######:=+#*:-##=###########=####-:+#########+#*==############=::::+::==++:+*##++-*#=::-++=:=#####=###*--####=:#######+######*+#:.....=##=+=*###*-#########=..................:*#-..:=--*##
#*:=##*##==#-+####*:-*####=:+=*##########*+*-:*############*+==###########*+-----:::::=#*####*--=++=-:+#######+-*#####+==-=##########*++*######....=-*#######*-*==-=+###+...................=*#=..--=*+=
=:*####**==*:####*.=#######*::=##########*:-*###############-=-*#########=:+-::::::::*##+###*++==--=-::::::###:-=####**=:*#==*####*+##*#########+==##+*######+=#####==+.=:.................==-=+..---+*#
-*#######**=-###*.=##########=:-:-+**-::-=+#################+==*#######+=:*-::::::::-##**++**::---:+:::::::=####=+*+*=:-#+=####--######.+#####*:#*--*########+*+####+.*+-+....................+*=.:-+###
#*=######==+*###-+############*=-:::::-+*#+##################==-::-=+**=####++#*+==**+*+#####+--+::-#*:**=:::::::::-:::===+:=-=+*-.-+##=####===-+###########*+#+##=.*###.-+:............:#*-.....----+##
###++####=::#**################*##########**#################*-=+####+##########*++*###+####*-*##############**=-:::+++*+-+=*-+=-:.....-+-..:+########+:-###++#*:.####-.+:::.........:+#######*..:.-.::.
.####-###=:+###*+::-+*#########*###########+##################+=-+#=+#######*+*#*+*####*###+-*###############+**=#####*=#+####+.####*:....=-*#:*#:#-*-:*####++:-++-::.::::-*#:...:##*=#########=-#+-....
.=####+=#=:*##*::=+-:::::--+*##+###########=###########==*#####==*=####**+****+*######*###+=###############**###::+##=*+#####:##+=##+-*#:...+*=-.*##.+##**=-..::::::::-=+*###*+###*=**=#######*=.#==-::.
#.####*#=--:+#*::::-+=:::::::::::-+*#######+############*######*-+##*++++*#**#########*##==##############**#####-:+=*+*###+=+####*::#####=#:..*##+-:-:-=+=.=*###=+*##################=*=#####*+#=+==*:::
#+.######=:=:*##=:::-==*=:::::::::::::::-=*+*#################*-=++*####*+############+#==#############**#######=*-*+##=*######-:###+-####=*=...+-+#*-=-.*#**##+::=###################*-=##**+*##.==##=+
##=:#####=*-:-#######**=-=+=-:::::::::::::::.::-=+*##########=+#*-*##***##############+==############**#########=++#*=######+:+####*+=----*##---..*##.:*#*===+=-:=######################+=**+*###+-+*+=:
###.-####=###############*+**+*+====--::::::.:::::::::-=**#*-####=++*################**#############+##########=+*#=#####*--*+===*######+=*==*###=..:=+##*--::-==:#**########*######***##++-+##**+++=..:
####.+###=#################*++**++##***++***+++++*****-:::::::-*++=##################+###########*+###########-+*++##*=-:+############+:########*.......*#+*+#**+++++*******#**+****+++++++++++*---::::.
####*.###+######*########+*#####*+*++*####**+---=****+::::::-=-:::=--=+*#############+#########**###########*:===-**+==*#########*+=====+++***=.+####..:*+++**+=##+####******###########**#=*#+----.::::
#####*.##+##############**#######=####**#####=####*=-::::-==::::::--::::::::-+*######+######**########*+=-=+=###.=+-+#####=+--=*############=.*####*++=...#+:::==-:-=*#################=####==-::--:.:::
######+.*+#############+*+*######=#######+####=#######-+**+=:.:::::=-::::::::::::::-=+###*+###*+==+*######=*##.=+-####+:+#################-.##*+*#####*-*...*+**###*###*+=--+#####*##*.###*=-:::::.:..:.
***+++:..+**********#+*##########=*#######++*#**####**######+###*+=-=:::::::::::::::-::::--:=*###########-+*-:-+##+=+###################-:++*#######**+=-*#-..=*###=.........**=-------:--:-::::::.::..:
########=.#########*+#****+++++++++****###:=##++#**=*######=########=*##+=--:::::-:::::::::::::::-=*###==++:..##:*####################+**#+-##**+**##-::=##+#=...+...........-:--=+=#+::-=::::::....-..:
##:######..#######**#############*=..-#...**+++*++++++++**+*########+=##*===+***=-:::::::::::::::::=:::::--+.+-*##################*+:+#**+**#######-::+==##+####-........-......##*=*######+::.::..:::::
#########=.:######################=*..:=-.:+:.:**=+**##+=#####**+==+++++***********#+*+=--:::::::::::.:::::..::--+*#########**#*++=+**##*++=-::::::::+**:##+##=+.....:..........=##**..............:::..
**########-..###################*++=....***-:.....*#*#**#*+=-=*#####*==######***++++++++++++++++++==-=--..-::::::::::::-+**++++-.-+--:::....*=::::+#*=::..++#....::......................:+#=:---.:::::.
***#########:.#########***+++**#...-##########:*+....+**#**##########*=*#######*###*#######*-:------=.:+++++++++++===--::=+-:..:-***###**#*-:::::=#####*=+=::::-:...............*############::.:.::::::
***#########*..*###**++**###++-..:=*######*+=-+-*##+..=#####**########==#######**##+#####+:.:::::...::=*.-:.::::::::::-+=::..::::::::-=--::::::=######*#+=*--=:.:..............=##+*########*#:...:::.::
**####=.#####*:-+++*###...#+....##+++--+*##+-########+..-######*+#####*-*#########*++++-::::::::..::###::##########+=+:::..::::::::::::::-==-:::::::-++*-:++####:.............####*#########=*.+.::.::::
+###########*+*:..#####-.==...:+**+*######-+##**#######*-.=########==-*==##########+=::::-:-==:..+####+.#########*+*##+.+**=-::::::::::::::::-==-::::::::::-+*##*..........-*##############=#.:=+=--:::.
*########*++***##...=+=-.....#####++####*-**********######*..+######+*#+-+********=::--==-:::.:.######-=######*+*###=.=*###=:=##+-::::::::::::::::--=-:...:::::....=:::-:==--*#####**+--::.-:.**#*=*--##
#######*++*###=-=*+........#######+*###+-************########*..########=-#####+......:::::::+=+#####+.#####+*####=.#=::#*-:*######=::::::::::::::::::-=-.:::....::::::-::.::::.-*#######-##.*####=##+##
######++*######*####*=:+*#########+*##==*******+-:-=****########+..#####*=+##-::::::::::.-*=+=:######.+##*+*####-=#######--##########*--=++--::::::::...-:::-:...:+====-==-::::::.:-=*#=+##-:#####+*:::=
####*++########**#################=+#==#******-::::::***#######-:##=..*##==-.::::::::::+##=++-######+.*+*#####-=##*+-:::::-::::-------=-::=--++=:::....::.....:-==-:=-:-::-::::::::::::-*##.*#####*+:::=
##*#+*##########*###-=######**+*++++++++*****:::::::=****###**#+.:###*...-==-::::::.-###*=*.=#######++######.==++#####-:=#-+#####=:::..:::::-=*###*.+#-....::::::::.:-:-::-:::::::::::::::.-######*++=#:
##*+*############+#==**++***######*:+####***-=+++=+*****##***+##-:-##::::...=-.:.:*#***=*=.######*+*.=*++=:*######*..:::-==+**#######::-=::::-+=-::.....:.-++++==:::::::::::::::::::::::::.-=++****-.*:+
##+*##############+++***+=-::::-=+:-*#####*::::::***+++***#######:::.::::::-:..:######=::#####*+++++.+*+.=----...=++-:=############=:+##*:=###+.....-:.=-+*########-.++--::::::::::::::::.:#########-:**
#++############+++#+######*:=####--+#*+=:......:**####*##*++*=.#+::::::::::.:####*+++=####*+=:::-=*+.:-#######:.....::.....=####=:=######--###*....:=+*::++########=.+#=#*=##+:::::::::::.*#########..#=
*+##########*++#####+######+*##*-=-*#####-::::=****+==-::::-=+=++==-::...:+###*=-...-==++*#+*#####*..:######-....=*+:==:.::*#+:=#########+:*########+####*-:+#*####+.-#=#*+###*+###**+++.###+####*#:#:-:
+#########*+*########..=*#####*-+--*####+::::-+###*########+:::.....:-=++++++++++++++*##++######*::...:.=*=....*#*:::*##*=.::+############:-########+#####+#-:-*###+...:.::...:-+######-=######**#::::::
*#######++*######.+##*....................:::=***########-.::::::::::+########+=-....::+*#####*.##...........*###=:::-+-::-...#############-########+#*..-*###*:::.....::::......:.:##*.#####+*#+.::::::
######*+*###############+###*--#=:+######*--=*##*******+::::::::::-*:###########*++*######*+::-:::.........-#####::::::+####-.:#############-######**##=-=*###=..::::..:::...........::=###+*==+.:::::::
*####++*####=.:##########+#*---::-##################+*##.......:+#++:*****+++*####+-######:-######=.......=::.::--:::+#######=..*############-*####**####+##*.:....::::::::.......::::.::=####*..:::::::
+++*++###*##...=##########-:::::--###############+*######:...=######:############:+####*.+############+###############*+=:....:..=+*##########-*###**####+#-.........:::-::::.:::::::.::::==::..-:::::::
+++++#######=...########+--::--+##############*+####################:###########:####-.+################################**+**#+======---:::--=+-=##+#####*-..........:.:--::::.::.::..:::::::..+*-::::::
+++++#######*...=#######----:::*############+*######################:##########:##*..#################################+-===============#########+-=-:..:-:...........::.::::::::::::.::::::::.:*###***##
++++++#######:..=######------:::#########+*#########################:#########*::.:################################+-==================###########:+####=::..............::.:::::::..::....:.=##########
++++++########:.:####+--------:--#####*+*###########################-*#########:-################################=====================+############-*##++..............::...................:###########
++++++########*..*#+:---------:::+##+*##############################=*######*.=################################*-====================-#############+#++#-...............:....:......:...........:-=+*###
++++++#########*.++-------------::+#################################*=####*.*#################################*=====================+##############+####-................:...:..............=##########*
+++++*###+######=.:-------------::=##################################:##+:*####+.*############################=======================*#############+####=.................:.................+###########
+++++*###########..---------------=##################################==*######################################=======================*#####==-*####*####*..................:................############
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------:----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------::::::::::---------------------------------::-------------------------------------------------------------------------------------
---------------------------------------------------------------------::------------------------------------------::-------------------------------------------------------------------------------------
--------------------------------------------------------------------::----------------:::--------::--------::----::----:::------------------------------------------------------------------------------
--------------------------------------------------------------------::-----:::::::--:::-::::--:::--:::--:::--:::-::--:::-:::----------------------------------------------------------------------------
--------------------------------------------------------------------::----------::-::-----::-::-----::-::-----::-::-:::-::::----------------------------------------------------------------------------
---------------------------------------------------------------------::--------:::-::-----::-::-----::-::-----::-::-::::--------------------------------------------------------------------------------
----------------------------------------------------------------------:::::-::::----:::-::::--:::--:::--:::--:::-::--:::--:::---------------------------------------------------------------------------
--------------------------------------------------------------------------:::---------:::-------:::-------:::-::--:----::::-----------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------::----::----------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------::::::-----------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------::::-:::::-:::-:-::::::::----------:-:--:::-::-:::::::::-----------------------------------------------------------------------------
----------------------------------------------------------------------------------------:---------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
********************************=**************************-+***+=-:-==**==****-*****=-=++=++=*+=--=+=**=---+=:+===++++=+-*+=-+*=+-*+=+-+**+=-*==++=+==+---++=+=****************************************
********************************=**************************==+*+=+++==**==*+**=--==-=--=-=*+=+=*+=====++-==+=-+-==***=++++++=*+===+*=+=::=+=+=-=+---===+=++-===-=***************************************
********************************=**************************=+=+====+=+===-+==-=--=-+++==+=+*+++=*+=:==-==-=:=-+=*+-=--==-=-::::--====+-++:=-=:=+==+=**+=*+-*++=+=+**************************************
********************************=***********************+-+===-++-+==+-+=+=+==++++=+=====+++*+=+=+=*--++**************===-=========--=-+=++-**:***+=**==*==+-===-+**************************************
*******************************=+*****************+===++****+++=-+====--==**+-+*+--:=++=-=++-=--=--+********************+::=======++=-++-*-+*==+*+=+*==++===+=+-==**************************************
*******************************=+*************+==+**********+-:=+-====+:=+=+=--:-=-===++==++=-===+***********************+=+=+=======+=-+==*+-+=+=+=+++==-==-=-=+==*************************************
*******************************=+**********+=+****************-::+=+==+--+===+=+:++==++++=--==-+***************************==+=+======-=+-++-=-=-++=:++-=+=++=+-+=-+**+==+******************************
*******************************=+******+==+*******************+---+===-+--=+:---=+*+=+===-==-+******************************+=+=+++++++==++=+--+**+-+*+-*+-++=+==:-==+****+=****************************
********************************=****==************************+-=:++:+=-====+====**+=+==++=**********************************+--=+=-==+*=+*+:+=**==**==+=++-==:.-**+====***=***************************
********************************=**=+***************************+++=:=+-=--::-=+===+++--===************************************=**==******++:=+++=--+=-==-=-=-+=-.::::::-+**=***************************
********************************=+=+*****************************-=-====-:---===*==+=-===+*************************************+::::::::::::-+**=::=:=+:==:+=++=--=+***+:+**=***************************
********************************+=********************************=+=-+----+==+-=++==**-+****************************************+=+=**=-=--=+*==::=**+=++=+=+-++---***-:-+=+***************************
*********************************=********************************+--:=.--+**=-====-=-=+*+=***********++-===+*********************=++=++*****=+=--+-=====:+=-===---:=++-==+=+***************************
*********************************+=********************************+==-:=+****=-+==++=*****+++***+=::-=-:+=-+---+*****************=:--:--------=-=+-======-==+--+:-:-=-+==+=****************************
*********************************+=*********************************+.:+=******=.::--+*******+=+--=+:=+=-*++***+---****************+.::.......:.=+.=-=:--++====+:.--=-:*==++****************************
**********************************=+********************************+-=-+++++++=-==-+*******+-==+**-:==::=---=----::-=**************+=++-=++++++=-:==:-=-===:+-=+=--+-.:+==+****************************
**********************************++**********************************+==+****++==+******+=-+--====--===-=*=.=++*****=-=++***********+=--=--------+=--===++-+-+=----:-=++==*****************************
**********************************+=**************************************-=+-==********=.:+****+=-+=:+==--*=-=+=***+:+*+-************+--:---------=.--=-+---+--+=--=.:++-******************************
***********************************=+***************************************++*++*****+:=------:==+=*=:+===-*=:=+=**--**:--=***********+::::::::::::-=-+.-+===-=+--=.::==-+*****************************
***********************************+-***************************************+=**=+***=::=+++++=====+=++:+=+-::+:-===:+*--*--+***********=::.::::::::--+---:-==+:-=:..:---=******************************
************************************=+**************************************+=**++**+==+*****+=++=====++.::-----:-=:-=+:*+:-=***********+--==+========+-+-=--*=-*=.:.---:=******************************
************************************+=***************************************=+**=+*=:=++++++-+-====-=:---------------:++:=::*************===-========:+-=--==-=+-:-:---.=******************************
************************************+=***************************************=+**+=+:-=+***-=+-+==+=-----------------:+=-=:::**************==-=======+=-=-=+--+-----:=::=+******************************
*************************************==***************************************=***=+=+==**-++-*-+=::------------------:-=:..:***************:----------==-+=:+=:=-==.:-+=+******************************
*************************************==***************************************=+*+=*=+*=+:+**+:+--:-----------------------:-=+**************+-===++====--*=.:=-+-=-:--:=:+******************************
*************************************=+***************************************+=+-=--=====****+--:---------------------==-:+=+***************+=*--+*****++.---=-+-:-::.:.=******************************
*************************************=*****************************************+=++=*-+***++****=----------------------==-=*=+****************...::::::::::=+====----....-******************************
*************************************=+***************************************++=+=***=+**==+++==----------------------=:.::=*****************+==+=++++++-=++=-=-:--.....=******************************
*************************************+=************************************+==*-++*****=+==++++=:--------------------:=+-.::*******************=++===*****=+-=-:+*:..-.:::******************************
**************************************=+*******************************==++****-:----------++++=---------------------=::::-=+******************+---:-------:==+-+=:.-:...:******************************
**************************************+=*********========+**********+=+*********==+****=-:::::::..------------------==+:--=**=+*****************===-===++++--*+==-::-:::-=+*****************************
***************************************+=*+==--=***+-:..:=++-=+***+-**************+=++--...........---------------=+--=++******=+****************=+-=-=++++=+*-+.---:.-:+=******************************
****************************************+=+*********+--=---+***-+=+*********************+:........-------------:-===:=-+*********+=**************=+==+******+=-:=+-+..===+******************************
***************************************++*****++===========:.::==*************************=:.......--==-:----=--=-:===**********+++==========+++++*-:==============--.::=*******************************
**************************************+=**++-:=:=========:.-+**=+*************************+++:::::::::::==-:=:=:.==++=-======***********************+=+++++++--==+-+-==*********************************
**************************************+:..:=++=+++---::-++****+-***************************+**+=+*+------:---:-:+***********************************=+*=+***=---:=-+-==*********************************
**************************************+.-+***=+**+==+********=+****************************=+****-+****++*==-+************************************++****=+=-++=++-::-:**********************************
**************************************+=***+=+==+*********+=********************************=+***+=*****+=++************************************+=*******+++:++-===.:=+*********************************
****************************************+=-++*********++=+**********************************+=**+=++++++++************************************+=+***********+-==+:+-=***********************************
******************************************+===========***************************************==+=********************************************=+**************=--==+*************************************
*******************************************=**************************************************==******************************************+=+****************=+==+**************************************
*******************************************+=************************************************+-++=+*************************************+=+*****************+=+==+**************************************
********************************************=+***********************************************=******===+*****************************+=+********************+++==***************************************
********************************************++**********************************************++**********++-=+********************+==+***********************=**=++**************************************
********************************************+-*********************************************+=*****************++===============++**************************++**+==**************************************
*********************************************=+*******************************************+=**************************************************************+=****==**************************************
**********************************************=*******************************************=***************************************************************=+****==+*************************************
**********************************************+=*********************++******************=+**************************************************************+=****+==+*************************************
***********************************************=+******************++==*****************=+**************************************************************+=*****+=+=*************************************
************************************************=+****************++*=*****************=+***************************************************************=+*****+=+=*************************************
*************************************************=+***************=*++****************=+***************************************************************=+******=*+=*************************************
**************************************************=+**************=*+****************+=***+=-+********************************************************+=*******=**=+************************************
***************************************************=**************+=*****************-+*==+***********************************************************=+******+=**=+************************************
****************************************************=+*************+=***************+=+=*************************************************************=+*******+=**++************************************
*****************************************************=+**************==++*********+==+=+************************************************************++********++**+=************************************
******************************************************=+****************+++++++=++***+=************************************************************+=*********++**+-************************************
*******************************************************=+****************************-+***********************************************************+=**********-***+-+***********************************
********************************************************=+**************************++************************************************************=**********=+****-+***********************************
*********************************************************+=*************************=************************************************************=**********+=****++-***********************************
**********************************************************++***********************=+***********************************************************=+**********++**+=**=+**********************************
***********************************************************+=*********************+=**++===+++*************************************************=+***********=*+=+***++**********************************
*************************************************************=**************+=====-===+*******++++++===========*******************************=+***********===******+=**********************************
**************************************************************=+*********+=+*****+=*************+++======+++*=+******************************=+*******++=+***********=+*********************************
***************************************************************++******==********=+*****++===++++**********=+*******************************=+*****==+****************=+********************************
.......................................................::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.::::::::::::::..............................................................
......................................................::::::::::::::::::::::::::::::::::::::::::::---====================---::::::::::::::::............................................................
....................................................::::::::::::::::::::::::::::::::::::::::--========+++++++++++++==============--::::::::::::.........................................................
...................................................::::::::::::::::::::::::::::::::::.:-=====+++++++++++++++++++++++++++++++==+======---:::::::::.......................................................
..................................................::::::::::::::::::::::::::::::::::-====++++++++***********************+++++++++++=======--::::::::....................................................
................................................::::::::::::::::::::::::::::::.:-=====+++++++***********************************++++++++======-:::::::..................................................
...............................................::::::::::::::::::::::::::::::-=====++++++*******************************************++++++++=====-:::::::...............................................
..............................................:::::::::::::::::::::::::::::-=====++++++++**********************************************++++++++=====-::::::.............................................
.............................................::::::::::::::::::::::::::::======++++++**************#*****************#**#**#***************+++++++====-::::::...........................................
............................................::::::::::::::::::::::::::-=====++++++**********#####***#*****#******#**##***#**#******************+++++====--::::::........................................
.........................................:..:::::::::::::::::::::::::-=====+++++++******#****##*****#####***************#**#**********************++++=====::::::::.....................................
.........................................::::::::::::::::::::::::::-=====+++++********#**#****#*****+*****#**#**************************************+++++===-::::::::...................................
.......................................:::::::::::::::::::::::::::-=====+++++++******+*#*****+*******************************************************+++++====-::::::::.................................
......................................::::::::::::::::::::::::::---===+++++++++++*#***+*#**********************************************#***************+++++===--:::::::::..............................
.....................................::::::::::::::::::::::::::---===+++++++++***++#***+**********************###**********************+*##**************++++===---:::::::::............................
....................................::::::::::::::::::::::::::----===+++++++++=*#*********************#***#***#**##**#***#********************************++++====--:::::::::::.........................
...................................::::::::::::::::::::::::::---====+++=+**#*+*==++************#******#***#***#**#***#**##**********************************++++==---::::::::::::.......................
.................................:::::::::::::::::::::::::::-----=======+#*=+#*+++++++++++*****#******##*****++*******###****##***************++*************++++====--:::::::::::::....................
................................:::::::::::::::::::::::::::-------=====+=+#***++++++++++++++**+*###***+***************+*******+**#***##***********************+++++==---::::::::::::::..................
...............................::::::::::::::::::::::::::::------===+*+=+=--=+++++++++++++++++*+=++********************************##***************************++++==---::::::::::::::::...............
..............................:::::::::::::::::::::::::::--------==+*****+==+==+++++*+++==++++++++++++++*****************************+****#**********************++++===--:::::::::::::::::.............
............................::::::::::::::::::::::::::::::--------=--=++*+=====+++****++=++++++++++++++++********************************#************************++++===--:::::::::::::::::::..........
...........................::::::::::::::::::::::::::::::::--------==-:==========-***++#*++=++++++++++++**+++***************************#*************************++++===---::::::::::::::::::::........
..........................:::::::::::::::::::::::::::::::-::-------------========+=-*#*+++====+++++++++++++++++++++********************++***************+**********+++++==--:::::::::::::::::::::::.....
........................:::::::::::::::::::::::::::::::::::---------------==========-=============++++++++++++++++++++***********************#**********************++++==---::::::::::::::::::::::::...
.......................::::::::::::::::::::::::::::::::::::-----------------=**+==**==================+++++++++++++++++*********************************************++++===---:::::::::::::::::::::::::.
......................::::::::::::::::::::::::::::::::::::----=-------------=-:=##+==========-===========++++++++++++++***+*****************+***********************+++++===---:::::::::::::::::::::::::
.....................:::::::::::::::::::::::::::::::::::::---=***+=---------------=============**==========++++++++++++++*+*****************************************++++====---:::::::::::::::::::::::::
...................:::::::::::::::::::::::::::::::::::::::--=++**+=------------------===+======:============++==++++++++++++*********+*****************************++++++===---:::::::::::::::::::::::::
..................::::::::::::::::::::::::::::::::::::::::::=***++-------------------==**++=+=-===================++++++++++++++****+*+*********#***#********+******++++====---:::::::::::::::::::::::::
.................:::::::::::::::::::::::::::::::::::::::::--:--:-=--------------------=***+**=-----================+++=+++++++++++++++++********+*******************++++====----::::::::::::::::::::::::
................::::::::::::::::::::::::::::::::::::::::::-+**+=---------------:---------+**=----------===============++++++++++++++++++++**+*****************++**+++++++===----::::::::::::::::::::::::
..............::::::::::::::::::::::::::::::::::::::::::::::::-++------=*+***=------=****=--=--------------===========++++++++++++++++++++++++************++*******#*+++====----::::::::::::::::::::::::
.............:::::::::::::::::::::::::::::::::::::::::::::=*+++*=-----:-**+=*=------++--=*=----------------=============+++++===+++++++++++++++**++*******++++++++++++++====-----:::::::::::::::::::::::
...........:::::::::::::::::::::::::::::::::::::::::::::::::::--::::::--::-------:--+***+*=----------------==-=====================+++++++++++++*+**=+**+++++++++++++++=====----::::::::::::::::::::::::
..........:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:--==:-::-----:--=------------------=========================++++++++++++++++*+*++++++++******+=====----::::::::::::::::::::::::
........::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-****+---:::-+***+=---:::::--------------===------==============+==+++++++++++++++++++++++***+**+====----:::::::::::::::::::::::::
....:.....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-+**=-:::-:::::=*=--:::::::::------------------------===============+==++=+++++++=+=+++=+=-++======-----::::::::::::::::::::::::
...:-:::....::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::-:::::-+**+*+--::::::::::::::--------------------------==================++==========++=======------::::::::::::::::::::::::
..::-:::-::....::::::::::::::::::::::::::::::::::::::::::::::::::::::::++*-:::::::::::::--:::::::::::::::-----:::::-::---------------=============+=======================-------:::::::::::::::::::::::
:-:-:::::::-:....:::::::::::::::::::::::::::::::::::::::::+=-::-:::::::+=++==-:::::::-=+*-::::::::::::::::::-::::::::::----------------=======+=++*+===================---------::::::::::::::::::::::::
:::::::::::::-:.....::::::::::::::::::::::::::::::::::::::=+====-::::::---:::::::::-+*+++-:::::::::::::::::::::::::::---------------------=======**+***+=================------:::::::::::::::::::::::::
.:-:::::==-::::-::....::::::::::::::::::::::::::::::::::::-=-:::::::::::::::::::::::::-----::::::::::::::::::::::::::---------------------=======**+=+*+==================-----:::::::::::::::::::::::::
...:-::::::::::-::-:.....::::::::::::::::::::::::::::::::::::::-:::::::::::::::::::::::::-=-:::::::::::::::::::::::::::----:-::-------------=====-=+*++=======+***=-==---------:::::::::::::::::::::::::
......:-::::::::::::-::....::::::::::::::::::::::::::::::::-=-==+-::::::::::::::::::::=++=-:::::::::::::::::::::::::::::::::::::::-::---------=**+===========+*=-=*+-----------:::::::::::::::::::::::::
........::::::::==:::::-:....:::::::::::::::::::::::::::::::+==-+-::::::::::::::::::::-:=+--=::::::::::::::::::::::::::::::::::::::::::------=*+=***+========-+==**=-----------:::::::::::::::::::::::::
...........:-:::::::::::::-:....:::::::::::::::::::::::::::...::::::::::::::::--:::::::--++=::::::::::::::::::::::::::::::::::::::::::::------=-+++*===---==*=--------------::::::::::::::::::::::::::::
.............::::::::--:::::-:....:::::::::::::::::::::::::::::::==::::::::::-:==:::::::-::::===::::::::::::::::::::::::::::::::::::::::::-:------+=--=--==--+**+=----------::::::::::::::::::::::::::::
...............::-::::::::::::-::....::::::::::::::::::::::::-=-=:=-:::::::+-===+-::::::::-=::-+=:::::::::::::::::::::::::::::::::::::::--:::-----------==++=++-=+=-------::::::::::::::::::::::::::::::
..................:-:::::-+-:::::-:....:::::::::::::::::::::::====-:::::::::+=-::::::::::::+=-=+=:::::::::::::::::::::::::::::::::::::-::--:---:----------:=***====------:::::::::::::::::::::::::::::::
....................::-::::::-::-::-::....::::::::::::::::::::::.::::::::::::::::=+-::::::::-=-::::::::::::::::::::::::::::::::::::::=+*+------:-------=+=-=-:===-------::::::::::::::::::::::::::::::::
.......................::-::-:::::::::-:....::::::::::::::::::::::::::::::::::-=+==+=::::::::::::::::::::::::::::::::::::::::::::--::=*+++=-----------==+*+--=-==-----::::::::::::::::::::::::::::::::::
..........................:-:-:--::::::::-:....:::::::::::::::::::::::::::::::.:::==+=:::::::::::::::::::-+++-::::::::::::::::=+*++--::==++------------+****=-----------::::::::::::::::::::::::::::::::
............................:-:::--::::-:::-:.....:::::::::::::::::::::::::::::::-=-:::-=::::::::::::::::-=-=-::=+:==::=+--+-::-=+++:--:-----------=+=---:-=-------=++=--::::::::::::::::::::::::::::::.
...............................:-:-:-::::::::-::....::::::::::::::::::::::::::::::::::==-:::::::::::::::-=-==:::=+++=:::=+++=:::--=+=-::::-:--::--*+=+*=----------=*=-++=-::::::::::::::::::::::::::::..
.................................:-:::--::::-:::-:.....::::::::::::::::::-=::.::::::-+=:::-=::::::::::::::-=-::-+=-+=:::+=-=+-:::-::::::::::--:-:-++=:=*+--------:----::--:::::::::::::::::::::::::::...
...................................::-:::-:::::-::-::....:::::::::::::-:=--=::::::::::::::==+=-::::::::::::::::::--=-::::----:::::::::::::::-++*=::=*+---------------::::::::::::::::::::::::::::::.....
......................................:::::--::::::::-:.....:::::::::::---:::::::::::::::-==:::::::::::::::::::::::::::::::::::::::::::::::-++-=*=-::---------=-----==::::::::::::::::::::::::::::......
........................................::-:-:-:::::::::::.....:::::::::::::::-=:::::::::::::::::::-=::::::::::::::::::::::::::::::::-=+++-:-+=-=*+-----:---=*+*=:::-=:::::::::::::::::::::::::::.......
...........................................:-:-+--::::-:::::.....:::::::::---=-:::::::::::::-==::::==-:=-::::::::::::::::::::::::::::---=++-:-=+=---:-------+==+++=:::::::::::::::::::::::::::::........
.............................................::::-:-::::::::-::....::::::::-=-::::--::::::::::::::-=-==-::::::::::=-:::====::::::::::::--=+=:::::---:--:-+=-::-===-:::::::::::::::::::::::::::..........
................................................:-:::--::::-:::-:.....:::::::-::::::==:::::::::::::::-=:::::::::::==:::::-==::::::::::::=-:::::::::::-==--+=-::--::::::::::::::::::::::::::::...........
..................................................::-::--::::::::-::....::::::::-:-==:::::::::::::::::::::::::::--==::::--==::::::::::::::::::::::::::=++++++-::::::::::::::::::::::::::::::............
.....................................................:-:::--::::-:::-:.....::::.:---:::::--::::::::::::::::::::::--==-::===-::::::::::::::::::::::=+=-:-+=::--::::::::::::::::::::::::::::..............
*******************************====++====-:::..:--====+++======+++++++++++++++*++*+===--===++++++++++++++++++++++++++++========-=====+=---==------===++++++++++++++++++++*++++++++++++*#################
******************************+====++====-:::..:-====++++=======++++++++++++++++++*++=-===++++++++++++++++++++++++++++++=========-===+=---==------===+++++++++++++++++++++**++++++++++*#################
******************************+====++===--:::.::-====+++++========++++++++++++++++**+=-===++++++++++++++++++++++++++++++========--===+=---==------==++++++++++++++++++++++++++++++++++*****#**********#*
*****************************+==========-::::.:--===++++++==========++++++++++++++**+=====+++++++++++++++++++++++++++++========---====----==------==+++++++++++++++++++++++++++++++++++*****************
****************************+=====+=====-::::.:-===+++++++++========++++++++++++++*+++==++++++++++++++++++++++++++++++++======---=-==----===--::--==+++++++++++++++++++++++++++++++++++************+++++
****************************+===+++====-::::.:--===++++++++++=======++++++++++++++++++++++++++++++++++++++++++++++++++++++=======--==----===-:::-===++++++++++++++++**++*****++++++++++********+++++++++
***************************+===++======-::::::--===+++++++++++=+====+++++++++++++++++++++++++++++++++++++++++++++++++++++++======--==---====--:---==++++++++++++++++*****++***++++++++++++++++++++++++++
**************************+====+======-::::.::-===+++++++++++++++====++++++++++++++++++++++++++++++++++++++++++++++++++++========--=-:--====------==+++++++++++++++****++++++*++++++++++++++++++++++++++
**************************+===========-::::::--==+++++++++++++++++====+++++++++++++++++++++++++++++++++++++++++++++++++++===========-:--===-------==+++++++++++++++************+++++++++++++++++++++++++
*************************+===========--::::::-===++++++++++++++++=+====+++++++++++++++++++++++++++++++++++++++++++++++++++==========---====--------==+++++++++++++************++++++++++++++++++++++++++
************************+============-:::::.:-==+++++++++++++++++=======++++++++++++++++++++++++++++++++++++++++++++++++++==========---===---------==++++++++++++**********+++++++++++++++++++++++++++++
+***********************+===========-:::::..:===++++++++++++++++++========+++++++++++++++++++++++++++++++++++++++++===+==================-------======+++++++++*********++++++++++++++++++++++++++++++++
***********************+============-::::..:-===++++++++++++++++++++=======++++++++++++++++++++++++++++++++++=+++=====+=================-::--=========+++++++++******+++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++==--=+=====-::::..:-====+++++++++++++++++++++======+++++++++++++++++++++++++++=+++++++++++++++==+==============--:::--===========+++++++*+++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++==-::-=====-::....:-====+++++++++++++++++++++++=======++++++++++++++****+++++++++++++++=++++++=+++==========------::.::--==--==++===+++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++=---=======-:...:-=====++++++++++++++++++++++++++++====+++++++++*****************++++++++++++++================----:...:--============+++++++++++++++++++++++++++++++++++++++++++
**********************+--========-::..:-=====++++++++++++++++++++++++++++++++===+++**********************++++++++++++++==================--:..::-----=====++++++++++++++++++++++++++++++++++=====+++++++
******+***++*********+=--=======-::..:-===++++++++++++++++++++++++++++++++++++++***************************++====++++++===++==============--:...::----==++++++++++=++++++++++++++++++++++++=====++++++++
+++++++++++++*++++++++=-=======-::..:-==+++++++++++++++++++++++++++++++++++++*********************************+++====+====+++++++==========--::..:-==+++++++++++++++++++++++++++++++++++++=====+++++++++
+++++++++++++++++++++++++=====--:..:-==+++++++++++++++++++++++++++++++++++++**************************************+++++++++++=++++==========--:--=+++++++=++=+++++===+=+++++++++++++++++======++++++++++
+++++++++++++++++++++++++**++==-:..-===+++++++++++++++++++++++++++++++++++***********************************************+++++=+==============++=+++++======+========+++++++++++++++++=======+++++++++++
+++++++++++++++===++=---======+++=--===+++++++++++++++++++++++++++++++++******+=++******************************************++=============++==++++=+++======================++++++++=======++++++++++++
+++++++++++++++++++===---------==+========+++++++++++++++++++++++++++++*****+-...=**************************+****************+===========++==++++++++++====================================+++++++++++++
++++++++++++++++++++++++======-::-==++++====++++++++++++++++++++++++++******+:..:+***********************+=:.:=***************+=======+=====++++++++=====================================+++++++++++++++
++++++++++++++++++++++++++++++===----==++==+===++++++++++++++++++++++********+==*************************+-....+**************+=============++++++======================================++++++++++++++++
====++++++++++++++++++++++++++++++++========++++=======+++++++=+==++************************=**************+--+****************+===========+=++++=======================================++++++++++++++++
=====++++++++++++++++++++++++++++++++++++============+*****+++====+************************+=***********************************+============+++======================================++++++++++++++++++
========++===+++++++++++++++++++++++++++++++++===++***********+===+*********************++++==+*********************************+=========++++++======================================++++++++++++++++++
===============++++++++++=+===++++++++++++++++++***************+==**************************************************************+=======+++++++++====================================+++++++++++++++++++
===================++++==++===++++++++++++++++*******************+***************************************************************======++++++=======================================++++++++++++++++++++
====================+=+==+++====+++++++++++++***********************************************************************************++====++++++========================================++++++++++++++++++++
===========================++++++++========+***********************************************************************************++====+===+===+====================================++++++++++++++++++++++
=============================++++++==+++==+************************++*******************************************************+++++====+==+++=======================================++++++++++++++++++++++
=================================++==++===+************************++++++++++*++************************************++++++++++++====++===+++=============================-========++++++++++++++++++++++
=====================================++===+*************************++++++++++++********************+*********++++++++++++++++=========+=============================-=---========++++++++++++++++++++++
=================================+=++++===+++************************+++++++++++++++++++*++++*******+*++++++++++++++++++++++=====================================---------=======+++++++++++++++++++++++
===========================================+++++**********************+++++++++++++++++++++++++++++++++++++++++++++++++++===---==================================--------======+++++++++++++++++++++++++
=============================================+++++++++*+**************++==++++++++++++++++++++++++++++++++++++++++++++====--:-=================================---------======++++++++++++++++++++++++++
===============================================++++++++++*************++++*******************+++++++++++++++++++++++====-::--=================================---------=======++++++++++++++++++++++++++
===--========================================--====++++++++++***+********************************++++++++++++++++===--:..:--================================-----------=====+++++++++++++++*************
=====--=======================================--:--===+++++++++++**************************************+++++++==--:....:---================================-----------=====++++++++*********************
+=====--=-======================================-::..:-=====+++++***********************************************++==------================================-----------======+++++*********#***#**#*#***#*
++++====---======================================---::..::--=++*********************************************************+++==============================------------=====+++*******************##***#**
***+++====--=======================================---:::...=****************************************************************++========================-----------:-===+++**************##******##******
*******++==---=-====================================----:-=*********************************************************************++=====================-------------==+*************************##******
***********+=----==================================-----=**************************************************************************++================--------------=++******************#*******##******
*************+===-===============================-=---=+******************************************************++**********************++============-----------:--=+*****************************#******
****************==================================---=*********************************************************++************************+======------------::::-=**********************#*********#*****
*****************+==---===========================--+***********************************************************+**************************+==-------------:::--=***********************#***************
******************+=---====-==================-==-=+***************************************************************************************+++=-----------:-:--=+*********************#********#********
********************+=------================----=+***************************************************************+++************************+++=---------::::-=********************#******##************
*********************+=-------============------+*****************************************************************+++*************+++++++++++++=-::::--:::::-=***************#*******#******************
***********************=-----------====-------=+******************************************************************+++*************++++++++++++===:::::::::::=+***************#*********#**********#*****
************************+=-------------------=+***************************************************************+**++++++**********++++++++++++===-::::::::::-+*****************#***#**#******************
***************************+=---------------=+**************************************************************++++++++++++++***++++++++++++======-:.:.::::::-++****************#********#*****************
*****************************=-------------=+++***************************************************************+++++++==+++++++++++++++++=====--:....::::::=++*******************************************
******************************+=----::-::-=++******************************************************************++++++=-=+++++++++++++======---.........::-+*********************************************
********************************+=-:::::-=++++***************************************************************++++++++=-:=++++++========----::...........:=*******************************#**************
***********************************=-:::-++++***************************************************************+++++++++=-..-===========---::.............:=+**********************************************
***************#*********************+===++++*************************************************************+++++++++++=-...:-==-=----::................:-+***********************************************
****************************************+++**************************************************************+++++++++++==-......::::....................:=++***********************************************
**************************************************************************+******************************++++++++++===:..............................-**************************************************
*************************************************************************+++*************************+**++*+++++++===-.............................:-+**************************************************
***********************************************************************+++++************************++++++++++++++===-...........................:=+***********************#*****##*********************