Уникальный плагин позволяющий аварийно перезапускать сервер при зависании, так-же автоматически создавать бэкапы сервера и загружать их на отдельный FTP-Сервер, для этого нужно ввести данные от него в конфиге. Есть автоматический перезапуск сервера каждое определенное время. Простая и быстрая настройка позволяющая сохранять стабильную работу сервера при лагах тем самым предотвращая их путем перезапусков.
YAML:
# Настройки терминатора
timeoutSec: 60 # Количество секунд, после которого сервер считается зависшим, в секундах
emptyTimeoutSec: 300 # Перезапускать сервер, если на нём никого нет N секунд
inactivityTimeoutSec: 300 # Перезапускать сервер, если на нём нет никакой активности N секунд
terminate: true # true - аналогично команде "kill -9 <PID>", false - аналогично просто "kill <PID>"
# Временные зоны игнора неактивности сервера
inactivityIgnore:
- start: 00:00
end: 06:00
# Настройки бэкапа
backupPeriodMin: 30 # Время между бэкапами в минутах
backupMaxCount: 6 # Количество бэкапов (функция автоудаления старых)
backupDir: backups # Директория куда скидывать бэкапы
backupInclude: # Папки и файлы которые включать в бэкап (только верхний уровень иерархии)
- world
- plugins
- server.properties
# Настройка заливки бэкапа на FTP
backupSFTPUpload: true
backupSFTP:
address: "sashok724.net"
port: 22
username: "root"
password: "PSP1004"
dir: "/mnt/storage/backups"
# Настройки авторестарта
autoRestart: true # Включить функционал авторестарта
autoRestartTime: "05:00" # Время, когда нужно автоматически перезапуститься
autoRestartCountdownSec: 10 # Количество секунд перед перезапуском которые будут писаться в чат
autoRestartCountdownSecPrint: [1,2,3,4,5,10] # Секунды которые будут писаться в чат
autoRestartCountdown: "&cДо рестарта сервера осталось %seconds% секунд!"
# Настройки автосохранения
autoSavePeriodMin: 10 # Период автосохранения в минутах
#,,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:++''++'''+;''++++''+++++++++++++++++++';:'';;:.``,,,;...................................`..``````````````````````````````````.,
#,,,,,,,....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;++''+'++##;'+++++'''''++'''''++'+++++'';:;'';;. `...,...................................`.```````````````````````````````````.,
#,,,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'+++++++#++;'+++'''''++++++++'+''''+++''',;;;;;``` `;':....................................```````````````````````````````````.,
#,,,,,,,,.....,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++'++''++';;''++''++++++++++++++++''++'+',::;;;````.'''...................................`.....``````````````````````````````..
#,,,,,,,,..`..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:+++++''+'';;;'''+++++++++++++++++++''++'',:,;;,````:''',..........................................````````````````````````````.,
#,,,,,,,,..``.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,+#''+''+++'''++'+++++++++++++++++++++'++'':;:;; `` ,:''';..........................................`.``````````````````````````..
#,,,,,,,,,..`.,,,,,,,,,,,,,,,,,,::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++''++++++''++++++++'+''++''+++++#+++++++';;;;.`` `::;++'............................................``````````````````````````.,
#,,,,,,,,,....,,,,,,,,,,,,,,,,::;::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++''''++++'+++#++++''''''+'''+++++++++++++'';:.`` ';:'++'.,..........................................``````````````````````````.,
#,,,,,,,,,,,.,,,,,,,,,,,,,,,,:;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;'+'''''++'++++++#++'''''++'''''+++++++#+++'';;,```;';'++':............................................````````````````````...`..,
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;''''''++++'++++++#+';''''''''''''+'++###+++'';.```'';++++;.,,,..............................................`````````````......,,
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;;;;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;;''+''''+'+++++++##'+'''''''''++++;++#+++++'';```.+''++++;.,,,.,,...........................................````````````..,,,,,,,
#,,,,,,,,,,,,,,,,,,,,,,,,,,,::;;;;;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''#'''''''++++++##++++'';;;''+##''++++++++'';.``;+''++#+'..,,,,,..........................................``.`````````..,,,:,,,,
#,,,,,,,,,,,,,,,,,,,,,,,,,,,::;'';;;;:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''''#''''+''++++'++##++'';;:::'###''++++##+++++:`,;+''#+##+,,,,..,.........................................```.`````````,,,,,::,,,
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;';;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,';;+#+'''''''''+'++#####+'';:;'###+'++###+++++'+'+'+'+#+##+,,.............................................````....`````.,,,,::::::
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'';+#+;;''';;;'++++#####+';;;;+####+++###++;'+++++;+;+#+##+,.............................................`````....``.``.,:,,::::::
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;;;;;::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;''+#+'''';;;'''+++######;;;;;#####+++##++;'++++;;:;:+####+,.............................................`````....````..,,,,,,,,::
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;;;;:::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;''+++'''';;;;;'++++#####+++++##@##++++++''+'+';,'.:;+####+..............................................````........`.,::,,,,,,::
#,,,,,,,,,,,,,,,,,,,,,,,,,,,,:;;'';;:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,;'+++'''';:`,;;;'+++##############+++++'+'''++'';,,:;#####+................................,,,,,.........``........`...,:,...,,,::
#,,,,,,,,,,,,,,,,,,,,,,,:::::;;;''';;;;:::::,,,,,,,,,,,,,,,,,,,,,,,,,,,;++'+'';;;:``.:;;''+#############++++'';'+#######;+;:;'###+.,,............................,::::,,.....................,::....,,:::
#,,,,,,,,,,,,,,,,,,,,,,::;;;;;'''';'';;;;;::::,,,,,,,,,,,,,,,,,,,,,,,,,:+''++'''';``.,;;;''+##########+++++''+#+++#++'''';;;;;+##+...............................,:;;::,...................`.,:,.`..,,:::
#,,,,,,,,,,,,,,,,,,,,:::;;;;;''''''';;;;;;;;;:::,,,,,,,,,,,,,,,,,,,,,,,::''+'';;,``,+,:;;;'''++++##+'''''+##+;'+##+';'';: .;,;+##+...............................,:;;::,.`...`..........`...,::,.`.,:::::
#,,,,,,,,,,,,,,,,,,,::::;;'''''''''';;;;;;;;;;:::,,,,,,,,,,,,,,,,,,,,,,,,:'++'';;.``..,++##++''++'++';''+#+'''###'+';';, ``;:;+##+..............................,:;;;::,.`..`..............,::::...,:::::
#,,,,,,,,,,,,,,,,,,,:::;;'''''''''''';;;;;;;;;:::,,,,,,,,,,,,,,,,,,,,,,.';'++''';:.`.;''';'+##++++':';##''+'+##+++'';';'.``,:':##+..,...........................,:;;;;:,.......,,,,,,,,,,,,::;:,,..,:::::
#,,,,,,,,,,,,,,,,,,::;;;;''''''''''';;;;;;;;;;;;:,,,,,,,,,,,,,,,,,,,,,,,+''++''';.``;''''''++'++###+#+''''+'###+'++;;;'''` :;'.###..........,....................:;;;;;,.....,,::::,,,:::::::::,,,,,:::;;
#,,,,,,,,,,,,,,,,,,:;;;;;;;''''''';';;;;;;;;;;;;::,,,,,,,,,,,,,,,,,,,,,,++'+'''''..`:;'''';;;''+'+;;+#+;'''###+++++';''#;``;;''##+,,......................,,.....:;;;;:,.....,::;::,,,,:::::::::,,,::::::
#,,,,,,,,,,,,,,,,,::;';;;;;'''''''';;;;;;;;:::;:::,,,,,,,,,,,,,,,,,,,,,,'''+''''```:;;'';;:.:'''''+''++;;;+#+++++++''''#+'`';;'#+#,,,,.......,..........,,.......,;;;;:,....,::;;;:..,,::::::::::::::::::
#,,,,,,,,,,,,,,,,,:;;';;:;;;;';;;;;;;;';;;:::::::::,,,,,,,,,,,,,,,,,,,,,'';''''',`.:;;'''';:`;'+'##:'+';`:+++++++'++#+++#+';;:''+':::,..................,,.,,,,,,:;;;;::,,,,:;;;;;:,..,:::::::::::::::;;:
#,,,,,,,,,,,,,,,,,:;;';::::;;;:;;;;;;;;;;;:,,:::::::,,,,,,,,,,,,,,,,,,,,;;;''+':,;';:'''''';.`;++##,'+':`'+++++###+++#####+';;#''':;::,.................,,,::::::;;;;;;;::::;;;;;;;:,,,:;;::::::::::::;;;
#,,,,,,,,,,,,,,,,,:;;;;:,:;;;;:;;;;;;;;;;;:,,,::;::::,,,,,,,,,,,,,,,,,,,';'''+''+#+'';'''''+',;#+++,+'';:'++##++#####+#####+;'#+;;:;::,.................,,:;;;;;;;';;;;;;:::;;;;;;:::,,:;;:,,::::::::::::
#,,,,,,,,,::::::,,:;;;:,,,:;;;;;;;;;;;;;;;::,,::;::::,,,,,,,,,,,,,,,,,,,'+''+#+++++'''++++#+++'++++''''''+##+##+++++;+#####+;+#+::::;:,.................,,:;;;;';;;;;;;;;::::;;::::::,,,:;:,,,::,::::::::
#,,,,,,,,,:;;;;;:::;;;:,,::;;;;;;;;;;;;;;;;:,,:::::::,,,,,,,,,,,,,,,,,,,'#++#####+###+++++++#++###++''''+######;,.:,:,#####+;'#,:::::,,,...............,.::;;;;;;;;;;;;;;;::,::,,:::;:,,,:;,.,::::::::;;;
#,,,,,,,,,:;;;;;;;;;;;:,,::;;';;;;;;;;;;;;::,,:::::::,,,,,,,,,,,,,,,,,,:'##+########'':;'#####+++#''''++######+;``.;#'#@##+#;,`,:,.::,,..............,,,.,:;;;;;;;;;;;;;;;::,,,,,::::::,,:;,..,,,,,::;;;;
#,,,,,,,,,:;;;'''';;;;:,,,:;;'';;';;;;;;;;:,,,:::::::,,,,,,,,,,,,,,,,,,;'##++#####'+;.`.;+######+#.`''+#######+;,`,;#+####'+;``:,,:::,,...............,..,:;;;;;;;;;;;;;;;:::::::;;::::,,::,..,,,,,:;;;;;
#,,,,,,,,,::;;''''''';:,,,:;;;'';';;;;;;;;::,,,::::::,,,,,,,,,,,,,,,,,,;'+#'+#####++;,`.;+######++'''++#@######';;'+#+####++;``:,;;;::,,,,...............,:;;;::;;;;;;;;;;;;::;;;;;::;:,.,:,..,,,,:::;;;;
#,,,,,,,,,:::;;;''';';:,,,:;;;;;;;;;;;;;;::,,,,::::::,,,,,,,,,,,,,,,,,,;''''+#####+#'':;'++###+#+;++++'#########;'+#+#####+#..`.:;;;;:::,,,,..............,:;;:;;;;;;;;;:::;:::;:;;;;;:..,,,.,::::::;;;;;
#,,,,,,,,,,:::;;;';;;;:,,,::;;;;;;;;;;;;;:::::::::::::,,,,,,,,,,,,,,,,,;'''';+@####++:'+#####+###++'+#+######@##+++###+###+#,```:;;;;;:::::,,.............,:;:::;;;;;;;;:::;;:;;:::;;::,,,,,,,:;;;;;;;;;;
#,,,,,,,,,,,:::;;;;;;;:,,,,:;;::;;;;;;;;:::::;:::::::::::::,,,,,,,,,,,,:'''''+#####++##++########++'+#+###################++,.``;;;;;;;;;;::,.............,,::::;;;::;;;;::::::::::;;;::,:,,,::;;;;;;;;;;
#,,,,,,,,,,,,,::;;;;;;:,,,,:;;:::;;;;;;:::::;;;;;::::::::::::,,,,,,,,,,:''''++#######+######@####++'++'###################+;````;;;;;;;;;;;::,.............,:;:;;;;:::;;:::,,,:::::;;;;:::,,,::;;;;;;;;;;
#,,,,,,,,,,,,::;;;;;;::,,,,,:::::;;;;;;:::;;;;;;;;::::::;::::,,,,,,,,::;;'''++############@######+#+'+`:#################++,,,`:';:;;;;:;;;;:,.............,:;;;;;;;::;;;::,,::::::::;;::::,,::;;;;;;;;;;
#,,,,,,,,,,,,,::;;;;;:,,,,,:::::;;;;;;;;;;;;;;;;;;;:::;;;::::,,,,,,:::;;''''++###################+#';+``'+##############+++;;;.'+;.;;;;:;;:::,,............,:;;;;;;;;;;;;:,,:::,,:::::::,,,,,,:::;:;;;;;;
#,,,,,,,,,,,,,:::::;::,,,,,::;;;;;;;;;;;;;;;;;;;;;;:::;;::::::::::::;;;;';'''+#############++####++#++ `':+###++######+##+++++'..'`;;;;:;;::::,,..........,::;:::::;;;;;;:,.::::,,:::::::,,,.,,::;:;;;;;;
#,,,,,,,,,,,,,,,,::;::,,,,,,::;;;;;;;;;;;;;;;;;;;;;:::;:::::::::::::;;;;;+'''++++#######++####+##+'#++`,'.'######+++++++++####'.,,.;;;;;;:,,,:,,,........,,:;::::::;;;;:::...:::::::::,,,.....,,,::;;;;;;
#,,,,,,,,,,,,,,,,,:;::,,,,,,::;;;;;;;;;;;;;;;;;;;;;:;;;:::::::::::::;;;;;''''++'''''++''+##+++++#'##'+;#+;+###+'+++#####++++#+'`:.:;;;;;::,,,,,,,.......,,:::,,,:::::;:::,...::::::::,,,,.,,,,:,,::;;;;;;
#,,,,,,,,,,,,,,,,,::::,,,,::;;;;;;;;;;;;;;;;;;;;;;;:;;;;:::::::::::;;;;;;+''''++';;:;'+++++++++::###;##;++#####'+++'++#++++#++',;,;;;;;;;:,,,,:,,.....,,,::::,.,,,,:;;:::,,..:::;:::,,...,,:,,:,,:;;;;;;;
#,,,,,,,,,,,,,,,,,,::,,,,::;;;;;;;;;;;;;;;;;;;::;;;:;;;;::::::::::::::::;'''''+++';;##;;'+++''++++##:##;#++#####+++'+####+++'+'';'':;;;;;::::::,,,....,:::::,..,,.,:;;:::::..,::::::,,..,,::,,,,:;:::;;;;
#,,,,,,,,,,,,,,,,,,,,,,,,::;;;;;;;;;;;;;;;;;;;::;;;;;;;;:::::::,,:::,:,:',+''++++'++;;:;'++';,'+#+##'#@##+###+##+++++++##''''';;:#:`:;;;;::::::,,,,...,::;;:,..,::,:;::::::,,,::::::::::::;:,,,,:;;::;;;;
#,,,,,,,,,,,,,,,,,,,,,,,,::;;;;;;:;;;;;;;;;;;;;;;;;;;;;;::::::,,,,,,,,,:'.''';++',..,;:;''';.`+#++##'###++++++#+++++#+++'''''''''#:,;;;;;:,,,,,,,,,...,,::::,..,:::;;;:::::,.,:::::;;;;:::::,.,:;;;;;;;;;
#,,,,,,,,,,,,,,,,,,,,,,,,:;;;;;;;::;;;;;;;;;;;;;;;;;;;;;:::::::,,,,,,,,:+`'''';::````,::;';;;:+#+###+####''#+++#+#++;'++''''+;,';#,,;;;;:,..,,,,,,,....,::::,..,::;;;;;;;;:,,,:::::;;;;:::::,,,:;;;;;;;;:
#,,,,,,,,,,,,,,,,,,,,,::::;;;;:;;::;;::;';;;;;;;;;;;;;;;:::::::,,,,,,,,,'.+''';;,.```.:;'+'';;++'###+####',+++#####++#+#'+#++;+#.::,';;::,......,,,...,,,:::,.,::;;;;;;;;;::,,:::,::;;;::;;;:,:;;;;;;::::
#,,,,,,,,,,,,,,,,,,,,,::::;;;;;;:::;;;:;;;;;;;;;;;;;;;;;;;;;:::,:,,,,,,,'.+''';:,.````,'++#++;'''###'####+:##'#######++++++++;##'+;;:;::,.............,:::::,,:;;;;;;;;;;;;:,,:;:::::;;;;;;;::;;;;;;::::,
#,,,,,,,,,,,,,,,,,,,,:::::;;;;;;::::;;:;;;;:;;;;;;;;;;;:;;;;:::,:,,,,,,,'.+'''';:,,.,;'+###'+'`'+###'####;;+#+####+#+#####+++###+';;::::,,...........,,:::::,,:;;;;::::::;;:,,:;;;;::;;;;;;';;;;;;;::;:::
#,,,,,,,,,,,,,,,,,,,,,::::;;;;;;;:::;;;;;;;::;;;;;;;;;;:::::::,,,,,,,,,,;.++''''''';''''###++'':'##@'####+++++############+#;:#++''+,;:::,,..........,::::;::::;;;;:::::,:;:::;;';;:::;;;;;;;;;;;;;:;;;;:
#,,,,,,,,,,,,,,,,,,,:::::::;;';;;:,:;;;;;;;::;:;;;;;;;;::::::::,,,,,,,,,',++#;'''+'+++++#+#'++:#####++####+'++##########+#''.;++#'+;.;:::,,..........,:::::::;::;;;:,:::::;;;;'''';:,::;;;;;;;;;;;::;';;;
#,,,,,,,,,,,,,,,,,,,:::::::;;';;;:::;;;;;;;:;;;;;;;;;;;;::::::,,,,,,,,,,'.+'+'''+######+#+#'++;+####''#@#++'+++######;+#'+'#++++@+':.::::,,......,...,,:::;;:::::::::,::,:::;''''';::;;;;;;;;;;;;;::;';;;
#,,,,,,,,,,,,,,,,,,::::::::;;;;;:::::;;;;;;:;;;;;;;;;;;::::::::,,,,,,,,,'.+';':'+##++##++'#+++,;+##+'++++#+;+'++##+#+;#+'+'+;'+'#'',.;::::,,.......,,.,,::::::::;;;::::::::::;;''';;;;;;;;';;;;;;;;;;';;;
#,,,,,,,,,,,,,,,,::::::::::;;;;;;:::::;;;;;:;;;;;;;;;;;;::::::::,,,,,,,,',+;'''+,'#+++++'++'++.;',;;'#+''''+:`+#+#+#:;#+++++';+'#+',:::::::,......,,,.,,:::::::;;;;;;;;;:::::;;'';;'''''''';;;;';;;';;::;
#,,,,,,,,,,,,,,,,::::::::::;;';;;:::::;;'';;;;;;;;;;;;;;;::::::,:::,,,,,'.+:+'`;';+#####+#+++':;;;:,,++''+''.`,+####;+#+++'++;''#+',:;:::::,...,.,,,,,,::::::::;;;;;;;;;;;;;;;;'';;'''''''';;'';;,,;;:::;
#,,,,,,,,,,,,,,::::::::::::;;;;;:::::;;''';;;;;;;;;;;;;;;:::::::::,,,,,:',+:'';'':+##########';'+#+''++++#+'``.#+##;###+++'+'''+##','::::::,,....,,,,,::::::::;;;;''';'''''';;;'''''';;''''';';;:.,::::;'
#,,,,,,,,,,,,,,::::::::::::;;;;;:::::;;;';;;;;;;;;;;;;;;;::::::::::::,,,'.#,+';';;'+#######@#';'##+++++++#';'::####+###++#'+';;+##','::::::,.,,,,,,,,::::::,,::;;;''''''''''''''''''''''''';'';;:,,:;::;'
#,,,,,,,,,,,,,:::::::::::::;;';;;::::;;'';;;;;;;;;;;;;;;;:::::::::::,,,,'.+:+';+'+'+######@##;','+''++++'''++;'#@+#+##++'+#+'''++#+.+:,:::,,,,,,::::::::::,..,:;;;''''''''''''''''''''''''''';;;;;;;;;;;'
#,,,,,,,,,,:,,,::::::::::::;;;';;::::;;;;;;;;;;;;:;;;;;;;::::::::::::,,,'`#:+';:++:+#,##+####++':+'''++++++++++####+##+#++#+++++'++,+:,::::,,,:::::::::::,.``.:::;'''''''''''''''''''''''''';;;;;';;;;;;'
#,::,,,,,,:::,,::::::::::::;;;;;;;::::;;;;;;;;;;::;;;;;;;:::::::::::,,,,;`#:++'+#+:;#'++#####+#++:::`,:++++++++#+#+++++####++++';#+:+::::::::::::::::::,,,.``.,::;'''''';''''''''''''''''''';;;;;;;;;;;;'
#,,,,,,,,,:::::::::::::::::;;;;;;;:::;;;;;;;;;;:::;;;;;;;:::::::::::::,,;.#:++++#+#'+++'##+'+''+'+++'+'++''''''++####+#++##+++';;#+,+::::::::::::::::::::,.``.,:;;'''';;;''''';''''''''';'''''';;;;;;'';;
#,,,,,,,,:::::::::::::::::::;;;;;;::::;;;;;;;;;:::;;;;;;:::::::::::::::::.+;++''+#+;+';+###++;'''';;++;'+'';;'#+###``+#+##+++''':++,+::::::::::::::::::,::,...:;;'''''';;''''''''''''''''''''';;;;;::;';;
#,,,:,::::::::::::::::::::::;;;;;;::::;;;;;;;;::::::;;;;:::::::::::::::::.+;'''+++#'+'++##'+##+''';''+;''+###+'+,@#.'++'##++';'':#+,+:::::::::::::::::::::,,.::;;;;''+'''''''''''''';''''''''';;;;;:::'''
#::,:,,:::::::::::::::::::::;;;;;;::::;;;;;;;;::::::;;;;::,,,::::::::::::,+'++''++#+;#+'@#++'#+###''+#+####';'':''#,`'+####++';',#+:+;:::::::::::::::::::::::;;;;::;;'''''''''''''';;'''''''';;;;;;:,:'''
#:::::,::::::::::::::::::::::;;;;;;:::;;;;;;;::::::;;;;:::,,,::::::::::::;'''++;+###;+#+#++++;++########':';'++#',;,;'#+##+#+''+;++:+:::::::::::::::::::::::;;';;:::;;;'''''''''''';;''''''';'';;;';,:;''
#:::::::::::::::::::::::::::::;;;;;::::;;;;;:::::::;;;;:,,,,,::;;::::::::'++'++'+###';++++#@+'+'';':';'''''+''',`;;.''#+++++''+#'++:+::::::::::::::::::::::;;'';;:::;::;;''''''''''''''''''';'';;;;:,:;''
#:::::::::::::::::::::::::::::;;;;;::::;;;;;:::::::;;;::,,,,::;;;;;::::::+++'+'+++##+,++'+'+;++++++;+''+++++.;+ '+:;++##''+:'+'#'+';+::::::::::::::::::;:::;'';;;:::;;::;''''''''''''''''';;;'';;;;:::'';
#:::::::::::::::::::::::::::::;;;;;::::;;;;;:::::::;;;:,,,:::;;;;;;::::::+++'++++#++#''+'+'+'+;;:+'+;''++'++'`++++;''+##''+`++:#';+'+:::::::::::::::::;;;;;'';;:::,:;;;:;;;;''''''''''''';;;;';;;;;::;;';
#:::::::::::::::::::::::::::::;;;;;::::;;;;;;::;;;;;;;;::::;;;;;;;;::::::++#'+++'++##+:++++'':''+###+';''''+''#+;+'+++;;;;.'+':#+,'++:::::::::::::::::::;;;'';;:;;::;;;;'''''''''++;;';';;;;;'';;;;;:;';:
#::::::::::::::::::::::::::::::;;;;;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::'+#;++++++++;;+++#+',,'.``.:.,;''+++##+'++###;`.:`++++##;;++;:::;:::::::::::::,:;;;;;;:;''+##+;,.`` .`,:++:.:''';;;;;;'';;;;;;;:
#;;;;;;::::::::::::::::::::::::;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::'+#;++#+'+++++#+#+#+;.;;'++''+++,'++###'#+'',+.: '#####+';+'''';;;:::::;;::::::::;;;'+##':.;'+###+#####+;. `;+'.`,;';;''';;;';;:
#;;;;;;;;;;;;;;;;::::::::::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::'+#;++##+++++;;##+#++:'+:::::'+#'++####'#+';,,: @#####++':#+'+++++'';;;;;:::::::;+++;:;'###';;;::,.:;;;'+#+++:. `;++,`.;';'''';:
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::'+#;++##++++'',+#+#+'':++```,'##+''####;++'.'.`++##+###+#,#+'######+++++'';;;;##+;'###'';;;;::::,..:+#+''+#+#++##+:.`.:+; ,''';;
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::'+#;++###+++'','#++'++;+#++'+###++++###'`':,;;;+#######+#:++'########+##++++++'+##+++:;'++;;;;;,:'++#+,;':++#;';;''+#+':.;#;`;';
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;+#;++###++''''''+''#+;'########+++++##' '';'''###@@#@#+@;#+'#+#######+''+##+###+##+++++++;;'+'++'''+#+++##+;.;';;;;;;''++.:++`:
#;;;;;;;;;;;;;;;;;;;;;;;;;';;';;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::;+#+++####+++''.;+'++#';#######++'+++#+'`:'+++@##@@####+@'##+#####++'++++#'#++++++++++++'++++'''+++++'+##+';+';';;;;;;'';;'#..'#
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::;;+###+###'+#+'';'++'+#+;+######'''+++#+':'''+#####.;;####'##+######+''+#++++++##+++##.+++'+'''++;:;;'++,:;;;#'';;;';;;;;;;::;+:.
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::''++###+######+'''++++#+;+#####++++;+###+'+''+######;.:###'###@######+''+++###++++##+#;'';;#+''';;:;;'++:;''''';;;;'';;;;;;:::;'+
#;';;;;;;;;;:;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:;;'''+++###+#######'''#++##''''++##+'+++#####+'+#+##++### `##@;#+#;'#+''++###+++####++''''++'++#;;;;;;;;;':#';'+#;';;;;;'';;;;;;:::;;
#;';;;;;;;;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;'''+'+++###+#######';'#####:;:,;'';;,;++''##@+#+####+###+#####;##++'+##++++'+++##++++';::'+###+####++';'';.#+'++;';;;;;;;';;;;;;;;;;;
#''';;;;;;;;::::::;;;;;;;;;;;;;:::;;;;;:;;;;;;;;;;;;;;;;;;;;;;:::;';'+'++++'##########':+'+@##;,`,````.;''+##+``'+#########@#++###'#######++''++++++'''';;'''+####;+######'::.`+++++;;;;;;;;;;;;;;;;;;;;;
#''';;;;;;;;;:::::;;;;;;;;;;;;;:::::::::::::;;;;;;;;;;;;;;;;:::;';'''+++++#+#######+;,,'++'++';'':.`.,:'#++###+#############@+'''+++###+++++++''';;;:+++++++++####+''+#@#+::;`.+##+':';';;;;;;;;;;;;;;;;;
#'''';;;;;;;;;:::::;;;;;;;;;;;;:::::::::::::::::::;;;;;;;;;;:'';'''+++++###+###+###;::;+###++''''''''''++++######+##@#######++##+###+'+++++''';;;+'+++##++++##+''++;:;;;''+'`,;###+,:;'''';;;;;';;;;;'++'
#'''';;;;;;;;;::::::;;;;;;;;;;;:::::::,,:::::::::;;;;;;;;;;';;+''+++';;'#@#+######@''+#####''++''''+'''''########+@##'+@####+#+#++++++'++''';;'++++###@###+';;;;:::;;;;;;#+#+######;,.''''';;;;;'';'+++++
#''';;;;;;;;;;;:::::::;;;::::::::::::,,,,,,::::::::;;;;;'+''''++'+',.;+#########@##+########+;;##+++++#+'++#########@+#####'#+++++#++';;;;'+++###+##@##';;;;;;;;;;;;;;;'+##++##+#++',,:''''';;;;;'+##++++
#'';;;;;;;;;;;;;::::,::::::,,,,::;;+++++++#+++++''+++##';'''++''',.;+##################+#####,..;+':```.:+#################'++++++++;;'+'++########'';;;;;;;;;;;;;;;;;'+++####+:.``;:;:'''''';;;;+#++++++
#'';;;;;;;;;;;;;:::,.,::,,,;+++;';;,;::;';';;';;;'';;,.;+#':++;`.+########+#+#########';;####'.`'+',```.:+############++++#++''+++'+'''+#@##+##+:';:';::;;;;;;;;;;;;;;'###+.````,;+:;:;'''''';;'+++#+++++
#'';;;;;;;;;;;;;::,..,:;+'';,,:'+++;'+''''+'++'''+''''+++''+'+###++++++++++#'#@#######':;+###@::++';,`.,;+#########+##+###+'+:;'++########@#';;''+::;;:::;;;;;;;;;;;;;'++##';++++++:::;;;;'''';+'+#++++++
#'';;;;;;;;;;;;;:';;'+,::,;++,.`..`.+++'''''''''+++'''+++++'++++'+++++++##'+'#########+''#######+#+':::'++########+;+'+++###+#+#######@#';;;;;;;++::;;::;;;;;;;;;;;;;''++##++#+##++:;';;';;'''++'+#++####
#;;;;;;;;;;;;;;::++#++++#'++'+'++++++'+''+'+++''+'''''''''''';;;'''''''###+'++##########;#########+'''++###########+';#######+####@##+#;;;;;;;::##;;;:,:;;;';;'';'++###++###++++#++,;+;'';;;;;#+'++#####+
#;;;;;;;;;;;;;'+'+,','++#+;'''';''';:::,;;;;';';''''''''''''+'+++++++++###++@#'+########+################@#######@###########+#@'+##+##+.:;;;;:,+#;';+++;''+###########++###++++#++:;++;;'';:;+++######++
#;;;;;;;;;;;'+:.,++++++++;.,::::;''''';;';;';''''''''';;;;;;;;;;;;;;;;;++#+#+++++###;:+#+##########@@#####@#####################;######+;::;'+####+'+##################++##+++'++++,:'''''';:;#+######+++
#;;;:;;;;;'+:.'+:;'###++;+`````````.++++++''+++++'''''''''''''''''''';;++++#+.';'+@@'''######################@############;'###:+#+#'###@##+######+++##################+++#++++++#+,,;#'''';:;+########++
#;;;:;::'+:.++.`.'`;+++++```````````++++#+##++++++++++++++++''+++'+'+++##@;'##+'##########+###############################'+##@'#+++;+############+'###################+++++++++++'::+##;';;;;########+++
#;;;:;;+:`'+:,.``+;:'+++',,` ``````'';;''####+++++++++###++++++++++##++#@#::+'+++++''#####+#############################++;:'######+.+###+####+###+'###################++++'+'''++';:+##.';''+########+++
#;;;;'+:'+;,,,..``+:++++,:;.````` ::;:;::+;++..,:;'++#########++++++##+##';++''''++++++#@##@#########################+++##''#####+#+.+############++###################''++++''''+'':+##,''++#######+++++
#;;;+':++:,.,,..``,''+++`;;,:.,:;;;::,;',#'`````.,:::;;;;:::::::::';`++;':+'++++++++++++#############@@@###########+++'##+;#########`+###########+++###@#@#############;'+#++'+++#++'+##+##'######+++++++
#;'+;++;::,.,,.````;''++`;'''':;:,::;:;';+``````.,,:::::::::::::::;:'`'..'+'++++++++++++++#####################+++++';;+++####+#####.++##+#####++'''+'` '##############''+++''++##++;+##+#+'#####++##++++
#++:+';;::,..,.```` '+''.#++++'';;::::;;;.``````..,,::::::::::::::;:;@`+,,''+'+++##+++#+'++++++'';';,;:;'+++++++###';:;++####++###'++####+++#+++'''++'```'#############+++++;:+++++':'##+########++#+++++
#;++;;;::,,....`````++''++##++++'::::::;'```````..,,:::::::;;;;;''':;+#`'.:+';'++##++++++++++++;::::::::;++'+++###+;,''+@####+####'+++#++#+++++';:;+';``.,,############++++'::;+++'':'###########++'+++++
##+;;;;::,,,,..`````'+''++++++##':::,:,:````````..,,:;;;;'++#######;'+##.+,;++''+++#++++'+''+;+;,::;;;:::''++++##+':'+#@#####'+####++++#+##+'++';;+++;`...,:###########+''';;;;++#.+;'##+#######+++++'';:
#+;;;;;:,,,:,..````,'';;'';++#++;,,::,:,, `.,;;''++#@@############'+####.#'#++''###++''''''#'++######;::''++++#'+;;+#@#####++'#####+++++##++#+++++++'`,,.,::##########+''';,,,,;'#+'+###+######++++:;+++
#;;;;;;:,,::,.``````:;;;;;++#+++#++++++;;''+#######################++##### ######+###++''''+#'''+';;::;;''+''+#+;'+######@#++#'++++#+++++####++#++++''`.:,,`:.++########'++':,.,,++'++#####+#@##++:'++++#
#';;;;;:::::,...```;+'+++++##++########++#########################@++#####+.######'##+''''''#+'++++''''++'++'++++##########'+#';'####+####+#+#+';+##++``..,,,,####+++++#++++;++#+'+'''+####+####';+###+##
#+++++'';;;::,,,.``+'##++####++########++###########################+##++#+;'######'+#+++''+##++++++++#++'++###++#@###@####'@#+'+####+#####+++#+'++++++',`.:,`####+++++#+#+'+++++''+''+####+###:'####+###
#++++##+''';;:::,..'++++++##+++#########+################+''+###############'#####+';##++''+####++++++++++###@#''#######@#+#@#++#####++#####+++++'++++++++;,,;+#++++++##'++'+''+'''';''##+++#@''+########
#########+'+;;;::,:+#++'+++#++##########+############+############################'++++++''####+++++#####+#####+;#########;@######++++#+++++++##+'+++++++++#+++##++#####''+##;'+';;;;''++::###;#+++######
##########+'+;;;::'+#++'++#+++###################################++++################+###++##########@#########++########+;@###########+++++''+++'++++++#++#######+#+###'''++#####':;';+:;;##;+++++######
#########+##'';;;:'+#++++++++'#########################################@##########+#+##++++##@#+###############++########'+####++#####+++''+'++++++++++++++#############+;;''+#'.;+:,,,+.++#+'++'+###+###
#''+###++++++'';;;''+'''''++';#####################+++++##++#++++++++###############+##++++###++######+#########+################++++#++'++++#####'+++++++##+##@#########:,;++##+++',.;':###'++++########
########++++++';;;';+''''+++';#######################++'+##+####+####+##############+##+++######################+################++++++###########+++'++####+++#+#######+.`#+,`:+'+#.`+'+###'++++########
#########;++++''';'''''''+++''###############'+####+++++###########+####++##########+###++###########@#########################+++###########++++#++++'#+#++'++++++###+##:;'';'+;'++.,+'+###'++########+#
######++#@++++'';''+++++++++++#####++#######+::+###+++++##+++++++###+++++'+####+####++++++####+###+###############@###########+++##########++++++#++++'++++:++####+######'#+,'`+.'#,.:''####++######+++##
#########+#++++';'+++++++'++++#####+#####+;';'++##+++++###++++++++#+'++++'+########+++++++####+#++++####+########:@####+######+++####++++#++++##+++''':.:;+########+######++#`'.:+':;'++####+++######+++#