From 85b53482054a0f4831dc62ca805dbc8a96e474e5 Mon Sep 17 00:00:00 2001 From: Hazim Bin Ijaz Date: Wed, 9 Oct 2024 19:13:39 +0500 Subject: [PATCH] Added Main Menu Screen --- Assets/Demigiant.meta | 8 + Assets/Demigiant/DOTween.meta | 8 + Assets/Demigiant/DOTween/DOTween.XML | 2554 +++++++++++++++++ Assets/Demigiant/DOTween/DOTween.XML.meta | 7 + Assets/Demigiant/DOTween/DOTween.dll | Bin 0 -> 144384 bytes Assets/Demigiant/DOTween/DOTween.dll.meta | 21 + Assets/Demigiant/DOTween/Editor.meta | 8 + .../DOTween/Editor/DOTweenEditor.XML | 97 + .../DOTween/Editor/DOTweenEditor.XML.meta | 7 + .../DOTween/Editor/DOTweenEditor.dll | Bin 0 -> 44032 bytes .../DOTween/Editor/DOTweenEditor.dll.meta | 21 + Assets/Demigiant/DOTween/Editor/Imgs.meta | 8 + .../DOTween/Editor/Imgs/DOTweenIcon.png | Bin 0 -> 1565 bytes .../DOTween/Editor/Imgs/DOTweenIcon.png.meta | 140 + .../Demigiant/DOTween/Editor/Imgs/Footer.png | Bin 0 -> 4409 bytes .../DOTween/Editor/Imgs/Footer.png.meta | 140 + .../DOTween/Editor/Imgs/Footer_dark.png | Bin 0 -> 4429 bytes .../DOTween/Editor/Imgs/Footer_dark.png.meta | 140 + .../Demigiant/DOTween/Editor/Imgs/Header.jpg | Bin 0 -> 22787 bytes .../DOTween/Editor/Imgs/Header.jpg.meta | 140 + Assets/Demigiant/DOTween/Modules.meta | 8 + .../DOTween/Modules/DOTweenModuleAudio.cs | 195 ++ .../Modules/DOTweenModuleAudio.cs.meta | 11 + .../DOTween/Modules/DOTweenModulePhysics.cs | 212 ++ .../Modules/DOTweenModulePhysics.cs.meta | 11 + .../DOTween/Modules/DOTweenModulePhysics2D.cs | 101 + .../Modules/DOTweenModulePhysics2D.cs.meta | 11 + .../DOTween/Modules/DOTweenModuleSprite.cs | 88 + .../Modules/DOTweenModuleSprite.cs.meta | 11 + .../DOTween/Modules/DOTweenModuleUI.cs | 570 ++++ .../DOTween/Modules/DOTweenModuleUI.cs.meta | 11 + .../Modules/DOTweenModuleUnityVersion.cs | 252 ++ .../Modules/DOTweenModuleUnityVersion.cs.meta | 11 + .../DOTween/Modules/DOTweenModuleUtils.cs | 128 + .../Modules/DOTweenModuleUtils.cs.meta | 11 + Assets/Demigiant/DOTween/readme.txt | 29 + Assets/Demigiant/DOTween/readme.txt.meta | 7 + Assets/Demigiant/DOTweenPro.meta | 8 + .../Demigiant/DOTweenPro/DOTweenAnimation.cs | 662 +++++ .../DOTweenPro/DOTweenAnimation.cs.meta | 11 + Assets/Demigiant/DOTweenPro/DOTweenPro.XML | 49 + .../Demigiant/DOTweenPro/DOTweenPro.XML.meta | 7 + Assets/Demigiant/DOTweenPro/DOTweenPro.dll | Bin 0 -> 15872 bytes .../Demigiant/DOTweenPro/DOTweenPro.dll.meta | 21 + .../DOTweenPro/DOTweenProShortcuts.cs | 90 + .../DOTweenPro/DOTweenProShortcuts.cs.meta | 11 + .../DOTweenPro/DOTweenTextMeshPro.cs | 355 +++ .../DOTweenPro/DOTweenTextMeshPro.cs.meta | 11 + Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs | 227 ++ .../Demigiant/DOTweenPro/DOTweenTk2d.cs.meta | 11 + Assets/Demigiant/DOTweenPro/Editor.meta | 8 + .../Editor/DOTweenAnimationInspector.cs | 707 +++++ .../Editor/DOTweenAnimationInspector.cs.meta | 11 + .../Editor/DOTweenPreviewManager.cs | 255 ++ .../Editor/DOTweenPreviewManager.cs.meta | 11 + .../DOTweenPro/Editor/DOTweenProEditor.XML | 18 + .../Editor/DOTweenProEditor.XML.meta | 7 + .../DOTweenPro/Editor/DOTweenProEditor.dll | Bin 0 -> 28672 bytes .../Editor/DOTweenProEditor.dll.meta | 21 + Assets/Demigiant/DOTweenPro/readme.txt | 35 + Assets/Demigiant/DOTweenPro/readme.txt.meta | 7 + Assets/Demigiant/DemiLib.meta | 8 + Assets/Demigiant/DemiLib/Core.meta | 8 + Assets/Demigiant/DemiLib/Core/DemiLib.dll | Bin 0 -> 9728 bytes .../Demigiant/DemiLib/Core/DemiLib.dll.meta | 21 + Assets/Demigiant/DemiLib/Core/DemiLib.xml | 156 + .../Demigiant/DemiLib/Core/DemiLib.xml.meta | 7 + Assets/Demigiant/DemiLib/Core/Editor.meta | 8 + .../DemiLib/Core/Editor/DemiEditor.dll | Bin 0 -> 132096 bytes .../DemiLib/Core/Editor/DemiEditor.dll.meta | 21 + .../DemiLib/Core/Editor/DemiEditor.xml | 1488 ++++++++++ .../DemiLib/Core/Editor/DemiEditor.xml.meta | 7 + .../Demigiant/DemiLib/Core/Editor/Imgs.meta | 8 + .../DemiLib/Core/Editor/Imgs/blackSquare.png | Bin 0 -> 109 bytes .../Core/Editor/Imgs/blackSquare.png.meta | 140 + .../Core/Editor/Imgs/blackSquareAlpha10.png | Bin 0 -> 109 bytes .../Editor/Imgs/blackSquareAlpha10.png.meta | 140 + .../Core/Editor/Imgs/blackSquareAlpha15.png | Bin 0 -> 109 bytes .../Editor/Imgs/blackSquareAlpha15.png.meta | 140 + .../Core/Editor/Imgs/blackSquareAlpha25.png | Bin 0 -> 109 bytes .../Editor/Imgs/blackSquareAlpha25.png.meta | 140 + .../Core/Editor/Imgs/blackSquareAlpha50.png | Bin 0 -> 109 bytes .../Editor/Imgs/blackSquareAlpha50.png.meta | 140 + .../Core/Editor/Imgs/blackSquareAlpha80.png | Bin 0 -> 109 bytes .../Editor/Imgs/blackSquareAlpha80.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/blueSquare.png | Bin 0 -> 106 bytes .../Core/Editor/Imgs/blueSquare.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/circle.png | Bin 0 -> 455 bytes .../DemiLib/Core/Editor/Imgs/circle.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/greenSquare.png | Bin 0 -> 106 bytes .../Core/Editor/Imgs/greenSquare.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/grid_bright.png | Bin 0 -> 222 bytes .../Core/Editor/Imgs/grid_bright.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/grid_dark.png | Bin 0 -> 216 bytes .../Core/Editor/Imgs/grid_dark.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alert.png | Bin 0 -> 540 bytes .../Core/Editor/Imgs/ico_alert.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignB.png | Bin 0 -> 131 bytes .../Core/Editor/Imgs/ico_alignB.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignBC.png | Bin 0 -> 158 bytes .../Core/Editor/Imgs/ico_alignBC.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignBL.png | Bin 0 -> 152 bytes .../Core/Editor/Imgs/ico_alignBL.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignBR.png | Bin 0 -> 150 bytes .../Core/Editor/Imgs/ico_alignBR.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignCC.png | Bin 0 -> 152 bytes .../Core/Editor/Imgs/ico_alignCC.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignCL.png | Bin 0 -> 158 bytes .../Core/Editor/Imgs/ico_alignCL.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignCR.png | Bin 0 -> 153 bytes .../Core/Editor/Imgs/ico_alignCR.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignHC.png | Bin 0 -> 147 bytes .../Core/Editor/Imgs/ico_alignHC.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignL.png | Bin 0 -> 136 bytes .../Core/Editor/Imgs/ico_alignL.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignR.png | Bin 0 -> 145 bytes .../Core/Editor/Imgs/ico_alignR.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignT.png | Bin 0 -> 129 bytes .../Core/Editor/Imgs/ico_alignT.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignTC.png | Bin 0 -> 164 bytes .../Core/Editor/Imgs/ico_alignTC.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignTL.png | Bin 0 -> 153 bytes .../Core/Editor/Imgs/ico_alignTL.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignTR.png | Bin 0 -> 155 bytes .../Core/Editor/Imgs/ico_alignTR.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_alignVC.png | Bin 0 -> 135 bytes .../Core/Editor/Imgs/ico_alignVC.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_camera.png | Bin 0 -> 206 bytes .../Core/Editor/Imgs/ico_camera.png.meta | 140 + .../Core/Editor/Imgs/ico_camera_border.png | Bin 0 -> 347 bytes .../Editor/Imgs/ico_camera_border.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_cog.png | Bin 0 -> 197 bytes .../DemiLib/Core/Editor/Imgs/ico_cog.png.meta | 140 + .../Core/Editor/Imgs/ico_cog_border.png | Bin 0 -> 376 bytes .../Core/Editor/Imgs/ico_cog_border.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_comment.png | Bin 0 -> 176 bytes .../Core/Editor/Imgs/ico_comment.png.meta | 140 + .../Core/Editor/Imgs/ico_comment_border.png | Bin 0 -> 426 bytes .../Editor/Imgs/ico_comment_border.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_delete.png | Bin 0 -> 145 bytes .../Core/Editor/Imgs/ico_delete.png.meta | 140 + .../Core/Editor/Imgs/ico_demigiant.png | Bin 0 -> 605 bytes .../Core/Editor/Imgs/ico_demigiant.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_end.png | Bin 0 -> 475 bytes .../DemiLib/Core/Editor/Imgs/ico_end.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_heart.png | Bin 0 -> 210 bytes .../Core/Editor/Imgs/ico_heart.png.meta | 140 + .../Core/Editor/Imgs/ico_heart_border.png | Bin 0 -> 307 bytes .../Editor/Imgs/ico_heart_border.png.meta | 140 + .../Core/Editor/Imgs/ico_nodeArrow.png | Bin 0 -> 168 bytes .../Core/Editor/Imgs/ico_nodeArrow.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_play.png | Bin 0 -> 256 bytes .../Core/Editor/Imgs/ico_play.png.meta | 140 + .../Core/Editor/Imgs/ico_play_border.png | Bin 0 -> 386 bytes .../Core/Editor/Imgs/ico_play_border.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_skull.png | Bin 0 -> 227 bytes .../Core/Editor/Imgs/ico_skull.png.meta | 140 + .../Core/Editor/Imgs/ico_skull_border.png | Bin 0 -> 332 bytes .../Editor/Imgs/ico_skull_border.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_star.png | Bin 0 -> 203 bytes .../Core/Editor/Imgs/ico_star.png.meta | 140 + .../Core/Editor/Imgs/ico_star_border.png | Bin 0 -> 323 bytes .../Core/Editor/Imgs/ico_star_border.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/ico_ui.png | Bin 0 -> 223 bytes .../DemiLib/Core/Editor/Imgs/ico_ui.png.meta | 140 + .../Core/Editor/Imgs/ico_ui_border.png | Bin 0 -> 259 bytes .../Core/Editor/Imgs/ico_ui_border.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/orangeSquare.png | Bin 0 -> 104 bytes .../Core/Editor/Imgs/orangeSquare.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/project.meta | 8 + .../Core/Editor/Imgs/project/ico_atlas.png | Bin 0 -> 218 bytes .../Editor/Imgs/project/ico_atlas.png.meta | 140 + .../Core/Editor/Imgs/project/ico_audio.png | Bin 0 -> 338 bytes .../Editor/Imgs/project/ico_audio.png.meta | 140 + .../Core/Editor/Imgs/project/ico_bundle.png | Bin 0 -> 522 bytes .../Editor/Imgs/project/ico_bundle.png.meta | 140 + .../Core/Editor/Imgs/project/ico_cog.png | Bin 0 -> 406 bytes .../Core/Editor/Imgs/project/ico_cog.png.meta | 140 + .../Core/Editor/Imgs/project/ico_cross.png | Bin 0 -> 210 bytes .../Editor/Imgs/project/ico_cross.png.meta | 140 + .../Editor/Imgs/project/ico_demigiant.png | Bin 0 -> 388 bytes .../Imgs/project/ico_demigiant.png.meta | 140 + .../Core/Editor/Imgs/project/ico_folder.png | Bin 0 -> 150 bytes .../Editor/Imgs/project/ico_folder.png.meta | 140 + .../Core/Editor/Imgs/project/ico_fonts.png | Bin 0 -> 465 bytes .../Editor/Imgs/project/ico_fonts.png.meta | 140 + .../Core/Editor/Imgs/project/ico_heart.png | Bin 0 -> 334 bytes .../Editor/Imgs/project/ico_heart.png.meta | 140 + .../Core/Editor/Imgs/project/ico_play.png | Bin 0 -> 217 bytes .../Editor/Imgs/project/ico_play.png.meta | 140 + .../Core/Editor/Imgs/project/ico_prefab.png | Bin 0 -> 343 bytes .../Editor/Imgs/project/ico_prefab.png.meta | 140 + .../Core/Editor/Imgs/project/ico_scripts.png | Bin 0 -> 208 bytes .../Editor/Imgs/project/ico_scripts.png.meta | 140 + .../Core/Editor/Imgs/project/ico_skull.png | Bin 0 -> 368 bytes .../Editor/Imgs/project/ico_skull.png.meta | 140 + .../Core/Editor/Imgs/project/ico_star.png | Bin 0 -> 289 bytes .../Editor/Imgs/project/ico_star.png.meta | 140 + .../Core/Editor/Imgs/project/ico_textures.png | Bin 0 -> 278 bytes .../Editor/Imgs/project/ico_textures.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/purpleSquare.png | Bin 0 -> 106 bytes .../Core/Editor/Imgs/purpleSquare.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/redSquare.png | Bin 0 -> 106 bytes .../Core/Editor/Imgs/redSquare.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/squareBorder.png | Bin 0 -> 122 bytes .../Core/Editor/Imgs/squareBorder.png.meta | 140 + .../Core/Editor/Imgs/squareBorderAlpha15.png | Bin 0 -> 116 bytes .../Editor/Imgs/squareBorderAlpha15.png.meta | 140 + .../Core/Editor/Imgs/squareBorderCurved.png | Bin 0 -> 196 bytes .../Editor/Imgs/squareBorderCurved.png.meta | 140 + .../Core/Editor/Imgs/squareBorderCurved02.png | Bin 0 -> 281 bytes .../Editor/Imgs/squareBorderCurved02.png.meta | 140 + .../Imgs/squareBorderCurved02_darkBorders.png | Bin 0 -> 336 bytes .../squareBorderCurved02_darkBorders.png.meta | 140 + .../Editor/Imgs/squareBorderCurvedAlpha.png | Bin 0 -> 197 bytes .../Imgs/squareBorderCurvedAlpha.png.meta | 140 + .../Editor/Imgs/squareBorderCurvedEmpty.png | Bin 0 -> 180 bytes .../Imgs/squareBorderCurvedEmpty.png.meta | 140 + .../Editor/Imgs/squareBorderCurvedEmpty02.png | Bin 0 -> 217 bytes .../Imgs/squareBorderCurvedEmpty02.png.meta | 140 + .../Imgs/squareBorderCurvedEmptyThick.png | Bin 0 -> 233 bytes .../squareBorderCurvedEmptyThick.png.meta | 140 + .../Imgs/squareBorderCurved_darkBorders.png | Bin 0 -> 216 bytes .../squareBorderCurved_darkBorders.png.meta | 140 + .../squareBorderCurved_darkBordersAlpha.png | Bin 0 -> 200 bytes ...uareBorderCurved_darkBordersAlpha.png.meta | 140 + .../Core/Editor/Imgs/squareBorderEmpty.png | Bin 0 -> 114 bytes .../Editor/Imgs/squareBorderEmpty.png.meta | 140 + .../Core/Editor/Imgs/squareBorderEmpty01.png | Bin 0 -> 114 bytes .../Editor/Imgs/squareBorderEmpty01.png.meta | 140 + .../Core/Editor/Imgs/squareBorderEmpty02.png | Bin 0 -> 121 bytes .../Editor/Imgs/squareBorderEmpty02.png.meta | 140 + .../Core/Editor/Imgs/squareBorderEmpty03.png | Bin 0 -> 122 bytes .../Editor/Imgs/squareBorderEmpty03.png.meta | 140 + .../Editor/Imgs/squareBorderThickEmpty.png | Bin 0 -> 121 bytes .../Imgs/squareBorderThickEmpty.png.meta | 140 + .../Editor/Imgs/squareBorderThickerEmpty.png | Bin 0 -> 122 bytes .../Imgs/squareBorderThickerEmpty.png.meta | 140 + .../Core/Editor/Imgs/squareCorners03.png | Bin 0 -> 133 bytes .../Core/Editor/Imgs/squareCorners03.png.meta | 140 + .../Core/Editor/Imgs/squareCornersEmpty02.png | Bin 0 -> 131 bytes .../Editor/Imgs/squareCornersEmpty02.png.meta | 140 + .../Core/Editor/Imgs/tileBars_empty.png | Bin 0 -> 236 bytes .../Core/Editor/Imgs/tileBars_empty.png.meta | 140 + .../Core/Editor/Imgs/tileBars_slanted.png | Bin 0 -> 285 bytes .../Editor/Imgs/tileBars_slanted.png.meta | 140 + .../Editor/Imgs/tileBars_slanted_alpha.png | Bin 0 -> 266 bytes .../Imgs/tileBars_slanted_alpha.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/whiteDot.png | Bin 0 -> 148 bytes .../Core/Editor/Imgs/whiteDot.png.meta | 140 + .../Core/Editor/Imgs/whiteDot_darkBorder.png | Bin 0 -> 219 bytes .../Editor/Imgs/whiteDot_darkBorder.png.meta | 140 + .../Editor/Imgs/whiteDot_whiteBorderAlpha.png | Bin 0 -> 176 bytes .../Imgs/whiteDot_whiteBorderAlpha.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/whiteSquare.png | Bin 0 -> 103 bytes .../Core/Editor/Imgs/whiteSquare.png.meta | 140 + .../Core/Editor/Imgs/whiteSquareAlpha10.png | Bin 0 -> 107 bytes .../Editor/Imgs/whiteSquareAlpha10.png.meta | 140 + .../Core/Editor/Imgs/whiteSquareAlpha15.png | Bin 0 -> 109 bytes .../Editor/Imgs/whiteSquareAlpha15.png.meta | 140 + .../Core/Editor/Imgs/whiteSquareAlpha25.png | Bin 0 -> 107 bytes .../Editor/Imgs/whiteSquareAlpha25.png.meta | 140 + .../Core/Editor/Imgs/whiteSquareAlpha50.png | Bin 0 -> 107 bytes .../Editor/Imgs/whiteSquareAlpha50.png.meta | 140 + .../Core/Editor/Imgs/whiteSquareAlpha80.png | Bin 0 -> 110 bytes .../Editor/Imgs/whiteSquareAlpha80.png.meta | 140 + .../Editor/Imgs/whiteSquare_fadeOut_bt.png | Bin 0 -> 131 bytes .../Imgs/whiteSquare_fadeOut_bt.png.meta | 140 + .../DemiLib/Core/Editor/Imgs/yellowSquare.png | Bin 0 -> 106 bytes .../Core/Editor/Imgs/yellowSquare.png.meta | 140 + Assets/Demigiant/readme_DOTweenPro.txt | 35 + Assets/Demigiant/readme_DOTweenPro.txt.meta | 22 + Assets/Font/NewFonts.meta | 8 + Assets/Font/NewFonts/CAIRO-BLACK SDF.asset | 373 +++ .../Font/NewFonts/CAIRO-BLACK SDF.asset.meta | 8 + Assets/Font/NewFonts/CAIRO-BLACK.TTF | Bin 0 -> 175364 bytes Assets/Font/NewFonts/CAIRO-BLACK.TTF.meta | 21 + Assets/Font/NewFonts/CAIRO-BOLD SDF.asset | 423 +++ .../Font/NewFonts/CAIRO-BOLD SDF.asset.meta | 8 + Assets/Font/NewFonts/CAIRO-BOLD.TTF | Bin 0 -> 170892 bytes Assets/Font/NewFonts/CAIRO-BOLD.TTF.meta | 21 + .../COCOGOOSE-PRO-BOLD-TRIAL SDF.asset | 292 ++ .../COCOGOOSE-PRO-BOLD-TRIAL SDF.asset.meta | 8 + .../NewFonts/COCOGOOSE-PRO-BOLD-TRIAL.TTF | Bin 0 -> 250132 bytes .../COCOGOOSE-PRO-BOLD-TRIAL.TTF.meta | 21 + Assets/NewUI/MainMenu/Add btn.png | Bin 0 -> 4720 bytes Assets/NewUI/MainMenu/Add btn.png.meta | 140 + Assets/NewUI/MainMenu/Gold coin bar bg.png | Bin 0 -> 1430 bytes .../NewUI/MainMenu/Gold coin bar bg.png.meta | 140 + Assets/NewUI/MainMenu/Gold coin.png | Bin 0 -> 12024 bytes Assets/NewUI/MainMenu/Gold coin.png.meta | 140 + Assets/NewUI/MainMenu/LevelBar.meta | 8 + .../Rounded Rectangle 1029 copy 10.png | Bin 0 -> 885 bytes .../Rounded Rectangle 1029 copy 10.png.meta | 140 + Assets/NewUI/MainMenu/LevelBar/bg.png | Bin 0 -> 2811 bytes Assets/NewUI/MainMenu/LevelBar/bg.png.meta | 140 + Assets/NewUI/MainMenu/LevelBar/level no_.png | Bin 0 -> 4149 bytes .../MainMenu/LevelBar/level no_.png.meta | 140 + Assets/NewUI/MainMenu/LevelBar/level up_.png | Bin 0 -> 10815 bytes .../MainMenu/LevelBar/level up_.png.meta | 140 + .../NewUI/MainMenu/LevelBar/loading bar 1.png | Bin 0 -> 1254 bytes .../MainMenu/LevelBar/loading bar 1.png.meta | 140 + Assets/NewUI/MainMenu/PIPUZZLE Text 1.png | Bin 0 -> 35241 bytes .../NewUI/MainMenu/PIPUZZLE Text 1.png.meta | 140 + Assets/PipeOut/Scenes/HomeScene.unity | 1275 ++++++-- Assets/Resources/DOTweenSettings.asset | 43 + Assets/Resources/DOTweenSettings.asset.meta | 8 + 307 files changed, 26629 insertions(+), 174 deletions(-) create mode 100644 Assets/Demigiant.meta create mode 100644 Assets/Demigiant/DOTween.meta create mode 100644 Assets/Demigiant/DOTween/DOTween.XML create mode 100644 Assets/Demigiant/DOTween/DOTween.XML.meta create mode 100644 Assets/Demigiant/DOTween/DOTween.dll create mode 100644 Assets/Demigiant/DOTween/DOTween.dll.meta create mode 100644 Assets/Demigiant/DOTween/Editor.meta create mode 100644 Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML create mode 100644 Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta create mode 100644 Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll create mode 100644 Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll.meta create mode 100644 Assets/Demigiant/DOTween/Editor/Imgs.meta create mode 100644 Assets/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png create mode 100644 Assets/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta create mode 100644 Assets/Demigiant/DOTween/Editor/Imgs/Footer.png create mode 100644 Assets/Demigiant/DOTween/Editor/Imgs/Footer.png.meta create mode 100644 Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png create mode 100644 Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta create mode 100644 Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg create mode 100644 Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta create mode 100644 Assets/Demigiant/DOTween/Modules.meta create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs create mode 100644 Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta create mode 100644 Assets/Demigiant/DOTween/readme.txt create mode 100644 Assets/Demigiant/DOTween/readme.txt.meta create mode 100644 Assets/Demigiant/DOTweenPro.meta create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs.meta create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenPro.XML create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenPro.XML.meta create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenPro.dll create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenPro.dll.meta create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs.meta create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs.meta create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs create mode 100644 Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs.meta create mode 100644 Assets/Demigiant/DOTweenPro/Editor.meta create mode 100644 Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs create mode 100644 Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs.meta create mode 100644 Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs create mode 100644 Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs.meta create mode 100644 Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.XML create mode 100644 Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.XML.meta create mode 100644 Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll create mode 100644 Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll.meta create mode 100644 Assets/Demigiant/DOTweenPro/readme.txt create mode 100644 Assets/Demigiant/DOTweenPro/readme.txt.meta create mode 100644 Assets/Demigiant/DemiLib.meta create mode 100644 Assets/Demigiant/DemiLib/Core.meta create mode 100644 Assets/Demigiant/DemiLib/Core/DemiLib.dll create mode 100644 Assets/Demigiant/DemiLib/Core/DemiLib.dll.meta create mode 100644 Assets/Demigiant/DemiLib/Core/DemiLib.xml create mode 100644 Assets/Demigiant/DemiLib/Core/DemiLib.xml.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.xml create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.xml.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquare.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquare.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha10.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha10.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha15.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha15.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha25.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha25.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha50.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha50.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha80.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha80.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blueSquare.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/blueSquare.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/circle.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/circle.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/greenSquare.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/greenSquare.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/grid_bright.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/grid_bright.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/grid_dark.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/grid_dark.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alert.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alert.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignB.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignB.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignBC.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignBC.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignBL.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignBL.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignBR.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignBR.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCC.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCC.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCL.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCL.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCR.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCR.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignHC.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignHC.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignL.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignL.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignR.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignR.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignT.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignT.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTC.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTC.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTL.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTL.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTR.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTR.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignVC.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignVC.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_camera.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_camera.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_camera_border.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_camera_border.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_cog.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_cog.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_cog_border.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_cog_border.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment_border.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment_border.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_delete.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_delete.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_demigiant.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_demigiant.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_end.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_end.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_heart.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_heart.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_heart_border.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_heart_border.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_nodeArrow.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_nodeArrow.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_play.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_play.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_play_border.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_play_border.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_skull.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_skull.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_skull_border.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_skull_border.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_star.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_star.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_star_border.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_star_border.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui_border.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui_border.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/orangeSquare.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/orangeSquare.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_atlas.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_atlas.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_audio.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_audio.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_bundle.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_bundle.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_cog.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_cog.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_cross.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_cross.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_demigiant.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_demigiant.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_folder.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_folder.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_fonts.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_fonts.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_heart.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_heart.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_play.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_play.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_prefab.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_prefab.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_scripts.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_scripts.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_skull.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_skull.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_star.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_star.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_textures.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_textures.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/purpleSquare.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/purpleSquare.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/redSquare.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/redSquare.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorder.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorder.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderAlpha15.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderAlpha15.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved02.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved02.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved02_darkBorders.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved02_darkBorders.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurvedAlpha.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurvedAlpha.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurvedEmpty.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurvedEmpty.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurvedEmpty02.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurvedEmpty02.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurvedEmptyThick.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurvedEmptyThick.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBorders.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBorders.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBordersAlpha.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBordersAlpha.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty01.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty01.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty02.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty02.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty03.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty03.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickEmpty.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickEmpty.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickerEmpty.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickerEmpty.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareCorners03.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareCorners03.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareCornersEmpty02.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareCornersEmpty02.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_empty.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_empty.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_slanted.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_slanted.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_slanted_alpha.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_slanted_alpha.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_darkBorder.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_darkBorder.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_whiteBorderAlpha.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_whiteBorderAlpha.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha10.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha10.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha15.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha15.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha25.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha25.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha50.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha50.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha80.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha80.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare_fadeOut_bt.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare_fadeOut_bt.png.meta create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/yellowSquare.png create mode 100644 Assets/Demigiant/DemiLib/Core/Editor/Imgs/yellowSquare.png.meta create mode 100644 Assets/Demigiant/readme_DOTweenPro.txt create mode 100644 Assets/Demigiant/readme_DOTweenPro.txt.meta create mode 100644 Assets/Font/NewFonts.meta create mode 100644 Assets/Font/NewFonts/CAIRO-BLACK SDF.asset create mode 100644 Assets/Font/NewFonts/CAIRO-BLACK SDF.asset.meta create mode 100644 Assets/Font/NewFonts/CAIRO-BLACK.TTF create mode 100644 Assets/Font/NewFonts/CAIRO-BLACK.TTF.meta create mode 100644 Assets/Font/NewFonts/CAIRO-BOLD SDF.asset create mode 100644 Assets/Font/NewFonts/CAIRO-BOLD SDF.asset.meta create mode 100644 Assets/Font/NewFonts/CAIRO-BOLD.TTF create mode 100644 Assets/Font/NewFonts/CAIRO-BOLD.TTF.meta create mode 100644 Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL SDF.asset create mode 100644 Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL SDF.asset.meta create mode 100644 Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL.TTF create mode 100644 Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL.TTF.meta create mode 100644 Assets/NewUI/MainMenu/Add btn.png create mode 100644 Assets/NewUI/MainMenu/Add btn.png.meta create mode 100644 Assets/NewUI/MainMenu/Gold coin bar bg.png create mode 100644 Assets/NewUI/MainMenu/Gold coin bar bg.png.meta create mode 100644 Assets/NewUI/MainMenu/Gold coin.png create mode 100644 Assets/NewUI/MainMenu/Gold coin.png.meta create mode 100644 Assets/NewUI/MainMenu/LevelBar.meta create mode 100644 Assets/NewUI/MainMenu/LevelBar/Rounded Rectangle 1029 copy 10.png create mode 100644 Assets/NewUI/MainMenu/LevelBar/Rounded Rectangle 1029 copy 10.png.meta create mode 100644 Assets/NewUI/MainMenu/LevelBar/bg.png create mode 100644 Assets/NewUI/MainMenu/LevelBar/bg.png.meta create mode 100644 Assets/NewUI/MainMenu/LevelBar/level no_.png create mode 100644 Assets/NewUI/MainMenu/LevelBar/level no_.png.meta create mode 100644 Assets/NewUI/MainMenu/LevelBar/level up_.png create mode 100644 Assets/NewUI/MainMenu/LevelBar/level up_.png.meta create mode 100644 Assets/NewUI/MainMenu/LevelBar/loading bar 1.png create mode 100644 Assets/NewUI/MainMenu/LevelBar/loading bar 1.png.meta create mode 100644 Assets/NewUI/MainMenu/PIPUZZLE Text 1.png create mode 100644 Assets/NewUI/MainMenu/PIPUZZLE Text 1.png.meta create mode 100644 Assets/Resources/DOTweenSettings.asset create mode 100644 Assets/Resources/DOTweenSettings.asset.meta diff --git a/Assets/Demigiant.meta b/Assets/Demigiant.meta new file mode 100644 index 00000000..eac69e29 --- /dev/null +++ b/Assets/Demigiant.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 42363941950cadc41aa026803bcc55be +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween.meta b/Assets/Demigiant/DOTween.meta new file mode 100644 index 00000000..05a1eb3a --- /dev/null +++ b/Assets/Demigiant/DOTween.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7312689cf0492f446a738c471fc9c384 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/DOTween.XML b/Assets/Demigiant/DOTween/DOTween.XML new file mode 100644 index 00000000..d3bf9e1a --- /dev/null +++ b/Assets/Demigiant/DOTween/DOTween.XML @@ -0,0 +1,2554 @@ + + + + DOTween + + + + + Types of autoPlay behaviours + + + + No tween is automatically played + + + Only Sequences are automatically played + + + Only Tweeners are automatically played + + + All tweens are automatically played + + + + What axis to constrain in case of Vector tweens + + + + Called the first time the tween is set in a playing state, after any eventual delay + + + + Used in place of System.Func, which is not available in mscorlib. + + + + + Used in place of System.Action. + + + + + Public so it can be used by lose scripts related to DOTween (like DOTweenAnimation) + + + + + Used to separate DOTween class from the MonoBehaviour instance (in order to use static constructors on DOTween). + Contains all instance-based methods + + + + Used internally inside Unity Editor, as a trick to update DOTween's inspector at every frame + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + This class contains a C# port of the easing equations created by Robert Penner (http://robertpenner.com/easing). + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in: accelerating from zero velocity. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing out: decelerating from zero velocity. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Easing equation function for a bounce (exponentially decaying parabolic bounce) easing in/out: acceleration until halfway, then deceleration. + + + Current time (in frames or seconds). + + + Expected easing duration (in frames or seconds). + + Unused: here to keep same delegate for all ease types. + Unused: here to keep same delegate for all ease types. + + The eased value. + + + + + Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected + + + + + Returns a value between 0 and 1 (inclusive) based on the elapsed time and ease selected + + + + + Used to interpret AnimationCurves as eases. + Public so it can be used by external ease factories + + + + + Additional notices passed to plugins when updating. + Public so it can be used by custom plugins. Internally, only PathPlugin uses it + + + + + None + + + + + Lets the plugin know that we restarted or rewinded + + + + + OnRewind callback behaviour (can only be set via DOTween's Utility Panel) + + + + + When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will be fired only if the tween isn't already rewinded + + + + + When calling Rewind, OnRewind callbacks will always be fired, even if the tween is already rewinded. + When calling PlayBackwards/SmoothRewind instead, OnRewind callbacks will be fired only if the tween isn't already rewinded + + + + + When calling Rewind or PlayBackwards/SmoothRewind, OnRewind callbacks will always be fired, even if the tween is already rewinded + + + + + Public only so custom shortcuts can access some of these methods + + + + + INTERNAL: used by DO shortcuts and Modules to set special startup mode + + + + + INTERNAL: used by DO shortcuts and Modules to set the tween as blendable + + + + + INTERNAL: used by DO shortcuts and Modules to prevent a tween from using a From setup even if passed + + + + + Used to dispatch commands that need to be captured externally, usually by Modules + + + + + Returns a Vector3 with z = 0 + + + + + Returns the 2D angle between two vectors + + + + + Uses approximate equality on each axis instead of Unity's Vector3 equality, + because the latter fails (in some cases) when assigning a Vector3 to a transform.position and then checking it. + + + + + Looks for the type withing all possible project assembly names + + + + + Struct that stores two colors (used for LineRenderer tweens) + + + + + Used for tween callbacks + + + + + Used for tween callbacks + + + + + Used for custom and animationCurve-based ease functions. Must return a value between 0 and 1. + + + + + Straight Quaternion plugin. Instead of using Vector3 values accepts Quaternion values directly. + Beware: doesn't work with LoopType.Incremental (neither directly nor if inside a LoopType.Incremental Sequence). + To use it, call DOTween.To with the plugin parameter overload, passing it PureQuaternionPlugin.Plug() as first parameter + (do not use any of the other public PureQuaternionPlugin methods): + DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration); + + + + + Plug this plugin inside a DOTween.To call. + Example: + DOTween.To(PureQuaternionPlugin.Plug(), ()=> myQuaternionProperty, x=> myQuaternionProperty = x, myQuaternionEndValue, duration); + + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + INTERNAL: do not use + + + + Main DOTween class. Contains static methods to create and control tweens in a generic way + + + + DOTween's version + + + If TRUE (default) makes tweens slightly slower but safer, automatically taking care of a series of things + (like targets becoming null while a tween is playing). + Default: TRUE + + + If TRUE you will get a DOTween report when exiting play mode (only in the Editor). + Useful to know how many max Tweeners and Sequences you reached and optimize your final project accordingly. + Beware, this will slightly slow down your tweens while inside Unity Editor. + Default: FALSE + + + Global DOTween timeScale. + Default: 1 + + + If TRUE, DOTween will use Time.smoothDeltaTime instead of Time.deltaTime for UpdateType.Normal and UpdateType.Late tweens + (unless they're set as timeScaleIndependent, in which case a value between the last timestep + and will be used instead). + Setting this to TRUE will lead to smoother animations. + Default: FALSE + + + If is TRUE, this indicates the max timeStep that an independent update call can last. + Setting this to TRUE will lead to smoother animations. + Default: FALSE + + + DOTween's log behaviour. + Default: LogBehaviour.ErrorsOnly + + + If TRUE draws path gizmos in Unity Editor (if the gizmos button is active). + Deactivate this if you want to avoid gizmos overhead while in Unity Editor + + + Default updateType for new tweens. + Default: UpdateType.Normal + + + Sets whether Unity's timeScale should be taken into account by default or not. + Default: false + + + Default autoPlay behaviour for new tweens. + Default: AutoPlay.All + + + Default autoKillOnComplete behaviour for new tweens. + Default: TRUE + + + Default loopType applied to all new tweens. + Default: LoopType.Restart + + + If TRUE all newly created tweens are set as recyclable, otherwise not. + Default: FALSE + + + Default ease applied to all new Tweeners (not to Sequences which always have Ease.Linear as default). + Default: Ease.InOutQuad + + + Default overshoot/amplitude used for eases + Default: 1.70158f + + + Default period used for eases + Default: 0 + + + Used internally. Assigned/removed by DOTweenComponent.Create/DestroyInstance + + + + Must be called once, before the first ever DOTween call/reference, + otherwise it will be called automatically and will use default options. + Calling it a second time won't have any effect. + You can chain SetCapacity to this method, to directly set the max starting size of Tweeners and Sequences: + DOTween.Init(false, false, LogBehaviour.Default).SetCapacity(100, 20); + + If TRUE all new tweens will be set for recycling, meaning that when killed, + instead of being destroyed, they will be put in a pool and reused instead of creating new tweens. This option allows you to avoid + GC allocations by reusing tweens, but you will have to take care of tween references, since they might result active + even if they were killed (since they might have been respawned and are now being used for other tweens). + If you want to automatically set your tween references to NULL when a tween is killed + you can use the OnKill callback like this: + .OnKill(()=> myTweenReference = null) + You can change this setting at any time by changing the static property, + or you can set the recycling behaviour for each tween separately, using: + SetRecyclable(bool recyclable) + Default: FALSE + If TRUE makes tweens slightly slower but safer, automatically taking care of a series of things + (like targets becoming null while a tween is playing). + You can change this setting at any time by changing the static property. + Default: FALSE + Type of logging to use. + You can change this setting at any time by changing the static property. + Default: ErrorsOnly + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + Kills all tweens, clears all cached tween pools and plugins and resets the max Tweeners/Sequences capacities to the default values. + + If TRUE also destroys DOTween's gameObject and resets its initializiation, default settings and everything else + (so that next time you use it it will need to be re-initialized) + + + + Clears all cached tween pools. + + + + + Checks all active tweens to find and remove eventually invalid ones (usually because their targets became NULL) + and returns the total number of invalid tweens found and removed. + IMPORTANT: this will cause an error on UWP platform, so don't use it there + BEWARE: this is a slightly expensive operation so use it with care + + + + + Updates all tweens that are set to . + + Manual deltaTime + Unscaled delta time (used with tweens set as timeScaleIndependent) + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a property or field to the given value using a custom plugin + The plugin to use. Each custom plugin implements a static Get() method + you'll need to call to assign the correct plugin in the correct way, like this: + CustomPlugin.Get() + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens only one axis of a Vector3 to the given value using default plugins. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + The axis to tween + + + Tweens only the alpha of a Color to the given value using default plugins + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end value to reachThe tween's duration + + + Tweens a virtual property from the given start to the given end value + and implements a setter that allows to use that value with an external method or a lambda + Example: + To(MyMethod, 0, 12, 0.5f); + Where MyMethod is a function that accepts a float parameter (which will be the result of the virtual tween) + The action to perform with the tweened value + The value to start from + The end value to reach + The duration of the virtual tween + + + + Punches a Vector3 towards the given direction and then back to the starting one + as if it was connected to the starting position via an elastic. + This tween type generates some GC allocations at startup + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The direction and strength of the punch + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + 1 creates a full oscillation between the direction and the opposite decaying direction, + while 0 oscillates only between the starting position and the decaying direction + + + Shakes a Vector3 with the given values. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction and behave like a random punch. + If TRUE only shakes on the X Y axis (looks better with things like cameras). + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Shakes a Vector3 with the given values. + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction and behave like a random punch. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Tweens a property or field to the given values using default plugins. + Ease is applied between each segment and not as a whole. + This tween type generates some GC allocations at startup + A getter for the field or property to tween. + Example usage with lambda:()=> myProperty + A setter for the field or property to tween + Example usage with lambda:x=> myProperty = x + The end values to reach for each segment. This array must have the same length as durations + The duration of each segment. This array must have the same length as endValues + + + + Returns a new to be used for tween groups + + + + Completes all tweens and returns the number of actual tweens completed + (meaning tweens that don't have infinite loops and were not already complete) + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Completes all tweens with the given ID or target and returns the number of actual tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + For Sequences only: if TRUE internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Flips all tweens (changing their direction to forward if it was backwards and viceversa), + then returns the number of actual tweens flipped + + + Flips the tweens with the given ID or target (changing their direction to forward if it was backwards and viceversa), + then returns the number of actual tweens flipped + + + Sends all tweens to the given position (calculating also eventual loop cycles) and returns the actual tweens involved + + + Sends all tweens with the given ID or target to the given position (calculating also eventual loop cycles) + and returns the actual tweens involved + + + Kills all tweens and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + + + Kills all tweens and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + Eventual IDs or targets to exclude from the killing + + + Kills all tweens with the given ID or target and returns the number of actual tweens killed + If TRUE completes the tweens before killing them + + + Pauses all tweens and returns the number of actual tweens paused + + + Pauses all tweens with the given ID or target and returns the number of actual tweens paused + (meaning the tweens that were actually playing and have been paused) + + + Plays all tweens and returns the number of actual tweens played + (meaning tweens that were not already playing or complete) + + + Plays all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + + + Plays all tweens with the given target and the given ID, and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + + + Plays backwards all tweens and returns the number of actual tweens played + (meaning tweens that were not already started, playing backwards or rewinded) + + + Plays backwards all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Plays backwards all tweens with the given target and ID and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Plays forward all tweens and returns the number of actual tweens played + (meaning tweens that were not already playing forward or complete) + + + Plays forward all tweens with the given ID or target and returns the number of actual tweens played + (meaning the tweens that were not already playing forward or complete) + + + Plays forward all tweens with the given target and ID and returns the number of actual tweens played + (meaning the tweens that were not already started, playing backwards or rewinded) + + + Restarts all tweens, then returns the number of actual tweens restarted + + + Restarts all tweens with the given ID or target, then returns the number of actual tweens restarted + If TRUE includes the eventual tweens delays, otherwise skips them + If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it + + + Restarts all tweens with the given target and the given ID, and returns the number of actual tweens played + (meaning the tweens that were not already playing or complete) + If TRUE includes the eventual tweens delays, otherwise skips them + If >= 0 changes the startup delay of all involved tweens to this value, otherwise doesn't touch it + + + Rewinds and pauses all tweens, then returns the number of actual tweens rewinded + (meaning tweens that were not already rewinded) + + + Rewinds and pauses all tweens with the given ID or target, then returns the number of actual tweens rewinded + (meaning the tweens that were not already rewinded) + + + Smoothly rewinds all tweens (delays excluded), then returns the number of actual tweens rewinding/rewinded + (meaning tweens that were not already rewinded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Smoothly rewinds all tweens (delays excluded) with the given ID or target, then returns the number of actual tweens rewinding/rewinded + (meaning the tweens that were not already rewinded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Toggles the play state of all tweens and returns the number of actual tweens toggled + (meaning tweens that could be played or paused, depending on the toggle state) + + + Toggles the play state of all tweens with the given ID or target and returns the number of actual tweens toggled + (meaning the tweens that could be played or paused, depending on the toggle state) + + + + Returns TRUE if a tween with the given ID or target is active. + You can also use this to know if a shortcut tween is active for a given target. + Example: + transform.DOMoveX(45, 1); // transform is automatically added as the tween target + DOTween.IsTweening(transform); // Returns true + + The target or ID to look for + If FALSE (default) returns TRUE as long as a tween for the given target/ID is active, + otherwise also requires it to be playing + + + + Returns the total number of active and playing tweens. + A tween is considered as playing even if its delay is actually playing + + + + + Returns a list of all active tweens in a playing state. + Returns NULL if there are no active playing tweens. + Beware: each time you call this method a new list is generated, so use it for debug only + + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens in a paused state. + Returns NULL if there are no active paused tweens. + Beware: each time you call this method a new list is generated, so use it for debug only + + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens with the given id. + Returns NULL if there are no active tweens with the given id. + Beware: each time you call this method a new list is generated + + If TRUE returns only the tweens with the given ID that are currently playing + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + Returns a list of all active tweens with the given target. + Returns NULL if there are no active tweens with the given target. + Beware: each time you call this method a new list is generated + If TRUE returns only the tweens with the given target that are currently playing + If NULL creates a new list, otherwise clears and fills this one (and thus saves allocations) + + + + + Creates virtual tweens that can be used to change other elements via their OnUpdate calls + + + + + Tweens a virtual float. + You can add regular settings to the generated tween, + but do not use SetUpdate or you will overwrite the onVirtualUpdate parameter + + The value to start from + The value to tween to + The duration of the tween + A callback which must accept a parameter of type float, called at each update + + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual overshoot to use with Back ease + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The type of ease + Eventual amplitude to use with Elastic easeType + Eventual period to use with Elastic easeType + + + Returns a value based on the given ease and lifetime percentage (0 to 1) + The value to start from when lifetimePercentage is 0 + The value to reach when lifetimePercentage is 1 + The time percentage (0 to 1) at which the value should be taken + The AnimationCurve to use for ease + + + Fires the given callback after the given time. + Callback delay + Callback to fire when the delay has expired + If TRUE (default) ignores Unity's timeScale + + + + Don't assign this! It's assigned automatically when creating 0 duration tweens + + + + + Don't assign this! It's assigned automatically when setting the ease to an AnimationCurve or to a custom ease function + + + + + Allows to wrap ease method in special ways, adding extra features + + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + Ease type + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + AnimationCurve to use for the ease + + + + Converts the given ease so that it also creates a stop-motion effect, by playing the tween at the given FPS + + FPS at which the tween should be played + Custom ease function to use + + + + Used to allow method chaining with DOTween.Init + + + + + Directly sets the current max capacity of Tweeners and Sequences + (meaning how many Tweeners and Sequences can be running at the same time), + so that DOTween doesn't need to automatically increase them in case the max is reached + (which might lead to hiccups when that happens). + Sequences capacity must be less or equal to Tweeners capacity + (if you pass a low Tweener capacity it will be automatically increased to match the Sequence's). + Beware: use this method only when there are no tweens running. + + Max Tweeners capacity. + Default: 200 + Max Sequences capacity. + Default: 50 + + + + Path mode (used to determine correct LookAt orientation) + + + + Ignores the path mode (and thus LookAt behaviour) + + + Regular 3D path + + + 2D top-down path + + + 2D side-scroller path + + + + Type of path to use with DOPath tweens + + + + Linear, composed of straight segments between each waypoint + + + Curved path (which uses Catmull-Rom curves) + + + + Path control point + + + + + Gets the point on the path at the given percentage (0 to 1) + + The percentage (0 to 1) at which to get the point + If TRUE constant speed is taken into account, otherwise not + + + + Base interface for all tween plugins options + + + + Resets the plugin + + + + This plugin generates some GC allocations at startup + + + + + Path plugin works exclusively with Transforms + + + + + Rotation mode used with DORotate methods + + + + + Fastest way that never rotates beyond 360° + + + + + Fastest way that rotates beyond 360° + + + + + Adds the given rotation to the transform using world axis and an advanced precision mode + (like when using transform.Rotate(Space.World)). + In this mode the end value is is always considered relative + + + + + Adds the given rotation to the transform's local axis + (like when rotating an object with the "local" switch enabled in Unity's editor or using transform.Rotate(Space.Self)). + In this mode the end value is is always considered relative + + + + + Type of scramble to apply to string tweens + + + + + No scrambling of characters + + + + + A-Z + a-z + 0-9 characters + + + + + A-Z characters + + + + + a-z characters + + + + + 0-9 characters + + + + + Custom characters + + + + + Methods that extend Tween objects and allow to control or get data from them + + + + Completes the tween + + + Completes the tween + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + Flips the direction of this tween (backwards if it was going forward or viceversa) + + + Forces the tween to initialize its settings immediately + + + Send the tween to the given position in time + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + Kills the tween + If TRUE completes the tween before killing it + + + Pauses the tween + + + Plays the tween + + + Sets the tween in a backwards direction and plays it + + + Sets the tween in a forward direction and plays it + + + Restarts the tween from the beginning + If TRUE includes the eventual tween delay, otherwise skips it + If >= 0 changes the startup delay to this value, otherwise doesn't touch it + + + Rewinds and pauses the tween + If TRUE includes the eventual tween delay, otherwise skips it + + + Smoothly rewinds the tween (delays excluded). + A "smooth rewind" animates the tween to its start position, + skipping all elapsed loops (except in case of LoopType.Incremental) while keeping the animation fluent. + If called on a tween who is still waiting for its delay to happen, it will simply set the delay to 0 and pause the tween. + Note that a tween that was smoothly rewinded will have its play direction flipped + + + Plays the tween if it was paused, pauses it if it was playing + + + Send a path tween to the given waypoint. + Has no effect if this is not a path tween. + BEWARE, this is a special utility method: + it works only with Linear eases. Also, the lookAt direction might be wrong after calling this and might need to be set manually + (because it relies on a smooth path movement and doesn't work well with jumps that encompass dramatic direction changes) + Waypoint index to reach + (if higher than the max waypoint index the tween will simply go to the last one) + If TRUE will play the tween after reaching the given waypoint, otherwise it will pause it + + + + Creates a yield instruction that waits until the tween is killed or complete. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForCompletion(); + + + + + Creates a yield instruction that waits until the tween is killed or rewinded. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForRewind(); + + + + + Creates a yield instruction that waits until the tween is killed. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForKill(); + + + + + Creates a yield instruction that waits until the tween is killed or has gone through the given amount of loops. + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForElapsedLoops(2); + + Elapsed loops to wait for + + + + Creates a yield instruction that waits until the tween is killed or has reached the given position (loops included, delays excluded). + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForPosition(2.5f); + + Position (loops included, delays excluded) to wait for + + + + Creates a yield instruction that waits until the tween is killed or started + (meaning when the tween is set in a playing state the first time, after any eventual delay). + It can be used inside a coroutine as a yield. + Example usage:yield return myTween.WaitForStart(); + + + + Returns the total number of loops completed by this tween + + + Returns the eventual delay set for this tween + + + Returns the duration of this tween (delays excluded). + NOTE: when using settings like SpeedBased, the duration will be recalculated when the tween starts + If TRUE returns the full duration loops included, + otherwise the duration of a single loop cycle + + + Returns the elapsed time for this tween (delays exluded) + If TRUE returns the elapsed time since startup loops included, + otherwise the elapsed time within the current loop cycle + + + Returns the elapsed percentage (0 to 1) of this tween (delays exluded) + If TRUE returns the elapsed percentage since startup loops included, + otherwise the elapsed percentage within the current loop cycle + + + Returns the elapsed percentage (0 to 1) of this tween (delays exluded), + based on a single loop, and calculating eventual backwards Yoyo loops as 1 to 0 instead of 0 to 1 + + + Returns FALSE if this tween has been killed. + BEWARE: if this tween is recyclable it might have been spawned again for another use and thus return TRUE anyway. + When working with recyclable tweens you should take care to know when a tween has been killed and manually set your references to NULL. + If you want to be sure your references are set to NULL when a tween is killed you can use the OnKill callback like this: + .OnKill(()=> myTweenReference = null) + + + Returns TRUE if this tween was reversed and is set to go backwards + + + Returns TRUE if the tween is complete + (silently fails and returns FALSE if the tween has been killed) + + + Returns TRUE if this tween has been initialized + + + Returns TRUE if this tween is playing + + + Returns the total number of loops set for this tween + (returns -1 if the loops are infinite) + + + + Returns a point on a path based on the given path percentage. + Returns Vector3.zero if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + Percentage of the path (0 to 1) on which to get the point + + + + Returns an array of points that can be used to draw the path. + Note that this method generates allocations, because it creates a new array. + Returns NULL if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + How many points to create for each path segment (waypoint to waypoint). + Only used in case of non-Linear paths + + + + Returns the length of a path. + Returns -1 if this is not a path tween, if the tween is invalid, or if the path is not yet initialized. + A path is initialized after its tween starts, or immediately if the tween was created with the Path Editor (DOTween Pro feature). + You can force a path to be initialized by calling myTween.ForceInit(). + + + + + Types of loop + + + + Each loop cycle restarts from the beginning + + + The tween moves forward and backwards at alternate cycles + + + Continuously increments the tween at the end of each loop cycle (A to B, B to B+(A-B), and so on), thus always moving "onward". + In case of String tweens works only if the tween is set as relative + + + + Controls other tweens as a group + + + + + Methods that extend known Unity objects and allow to directly create and control tweens from their instances + + + + Tweens a Camera's aspect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's backgroundColor to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's farClipPlane to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's fieldOfView to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's nearClipPlane to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's orthographicSize to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's pixelRect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Camera's rect to the given value. + Also stores the camera as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Shakes a Camera's localPosition along its relative X Y axes with the given values. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Shakes a Camera's localPosition along its relative X Y axes with the given values. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Shakes a Camera's localRotation. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Shakes a Camera's localRotation. + Also stores the camera as the tween's target so it can be used for filtered operations + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Tweens a Light's color to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's intensity to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's shadowStrength to the given value. + Also stores the light as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a LineRenderer's color to the given value. + Also stores the LineRenderer as the tween's target so it can be used for filtered operations. + Note that this method requires to also insert the start colors for the tween, + since LineRenderers have no way to get them. + The start value to tween from + The end value to reachThe duration of the tween + + + Tweens a Material's color to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Material's named color property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Material's alpha color to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Material's alpha color to the given value + (will have no effect unless your material supports transparency). + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Material's named float property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's texture offset to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The duration of the tween + + + Tweens a Material's named texture offset property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's texture scale to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The duration of the tween + + + Tweens a Material's named texture scale property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a Material's named Vector property to the given value. + Also stores the material as the tween's target so it can be used for filtered operations + The end value to reach + The name of the material property to tween + The duration of the tween + + + Tweens a TrailRenderer's startWidth/endWidth to the given value. + Also stores the TrailRenderer as the tween's target so it can be used for filtered operations + The end startWidth to reachThe end endWidth to reach + The duration of the tween + + + Tweens a TrailRenderer's time to the given value. + Also stores the TrailRenderer as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's X position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Y position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Z position to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's X localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Y localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's Z localPosition to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's rotation to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + Rotation mode + + + Tweens a Transform's rotation to the given value using pure quaternion values. + Also stores the transform as the tween's target so it can be used for filtered operations. + PLEASE NOTE: DORotate, which takes Vector3 values, is the preferred rotation method. + This method was implemented for very special cases, and doesn't support LoopType.Incremental loops + (neither for itself nor if placed inside a LoopType.Incremental Sequence) + + The end value to reachThe duration of the tween + + + Tweens a Transform's localRotation to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + Rotation mode + + + Tweens a Transform's rotation to the given value using pure quaternion values. + Also stores the transform as the tween's target so it can be used for filtered operations. + PLEASE NOTE: DOLocalRotate, which takes Vector3 values, is the preferred rotation method. + This method was implemented for very special cases, and doesn't support LoopType.Incremental loops + (neither for itself nor if placed inside a LoopType.Incremental Sequence) + + The end value to reachThe duration of the tween + + + Tweens a Transform's localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's localScale uniformly to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's X localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's Y localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's Z localScale to the given value. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Transform's rotation so that it will look towards the given position. + Also stores the transform as the tween's target so it can be used for filtered operations + The position to look atThe duration of the tween + Eventual axis constraint for the rotation + The vector that defines in which direction up is (default: Vector3.up) + + + Punches a Transform's localPosition towards the given direction and then back to the starting one + as if it was connected to the starting position via an elastic. + The direction and strength of the punch (added to the Transform's current position) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + 1 creates a full oscillation between the punch direction and the opposite direction, + while 0 oscillates only between the punch and the start position + If TRUE the tween will smoothly snap all values to integers + + + Punches a Transform's localScale towards the given size and then back to the starting one + as if it was connected to the starting scale via an elastic. + The punch strength (added to the Transform's current scale) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting size when bouncing backwards. + 1 creates a full oscillation between the punch scale and the opposite scale, + while 0 oscillates only between the punch scale and the start scale + + + Punches a Transform's localRotation towards the given size and then back to the starting one + as if it was connected to the starting rotation via an elastic. + The punch strength (added to the Transform's current rotation) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting rotation when bouncing backwards. + 1 creates a full oscillation between the punch rotation and the opposite rotation, + while 0 oscillates only between the punch and the start rotation + + + Shakes a Transform's localPosition with the given values. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the tween will smoothly snap all values to integers + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Shakes a Transform's localPosition with the given values. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the tween will smoothly snap all values to integers + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Shakes a Transform's localRotation. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Shakes a Transform's localRotation. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Shakes a Transform's localScale. + The duration of the tween + The shake strength + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Shakes a Transform's localScale. + The duration of the tween + The shake strength on each axis + Indicates how much will the shake vibrate + Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + Setting it to 0 will shake along a single direction. + If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + + + Tweens a Transform's position to the given value, while also applying a jump effect along the Y axis. + Returns a Sequence instead of a Tweener. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reach + Power of the jump (the max height of the jump is represented by this plus the final Y offset) + Total number of jumps + The duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition to the given value, while also applying a jump effect along the Y axis. + Returns a Sequence instead of a Tweener. + Also stores the transform as the tween's target so it can be used for filtered operations + The end value to reach + Power of the jump (the max height of the jump is represented by this plus the final Y offset) + Total number of jumps + The duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's position through the given path waypoints, using the chosen path algorithm. + Also stores the transform as the tween's target so it can be used for filtered operations + The waypoints to go through + The duration of the tween + The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path) + The path mode: 3D, side-scroller 2D, top-down 2D + The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + The color of the path (shown when gizmos are active in the Play panel and the tween is running) + + + Tweens a Transform's localPosition through the given path waypoints, using the chosen path algorithm. + Also stores the transform as the tween's target so it can be used for filtered operations + The waypoint to go through + The duration of the tween + The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path) + The path mode: 3D, side-scroller 2D, top-down 2D + The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + The color of the path (shown when gizmos are active in the Play panel and the tween is running) + + + IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead. + Tweens a Transform's position via the given path. + Also stores the transform as the tween's target so it can be used for filtered operations + The path to use + The duration of the tween + The path mode: 3D, side-scroller 2D, top-down 2D + + + IMPORTANT: Unless you really know what you're doing, you should use the overload that accepts a Vector3 array instead. + Tweens a Transform's localPosition via the given path. + Also stores the transform as the tween's target so it can be used for filtered operations + The path to use + The duration of the tween + The path mode: 3D, side-scroller 2D, top-down 2D + + + Tweens a Tween's timeScale to the given value. + Also stores the Tween as the tween's target so it can be used for filtered operations + The end value to reachThe duration of the tween + + + Tweens a Light's color to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Light as the tween's target so it can be used for filtered operations + The value to tween toThe duration of the tween + + + Tweens a Material's color to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween toThe duration of the tween + + + Tweens a Material's named color property to the given value, + in a way that allows other DOBlendableColor tweens to work together on the same target, + instead than fight each other as multiple DOColor would do. + Also stores the Material as the tween's target so it can be used for filtered operations + The value to tween to + The name of the material property to tween (like _Tint or _SpecColor) + The duration of the tween + + + Tweens a Transform's position BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableMove tweens to work together on the same target, + instead than fight each other as multiple DOMove would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + Tweens a Transform's localPosition BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableMove tweens to work together on the same target, + instead than fight each other as multiple DOMove would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + If TRUE the tween will smoothly snap all values to integers + + + EXPERIMENTAL METHOD - Tweens a Transform's rotation BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableRotate tweens to work together on the same target, + instead than fight each other as multiple DORotate would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + Rotation mode + + + EXPERIMENTAL METHOD - Tweens a Transform's lcoalRotation BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableRotate tweens to work together on the same target, + instead than fight each other as multiple DORotate would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + Rotation mode + + + Punches a Transform's localRotation BY the given value and then back to the starting one + as if it was connected to the starting rotation via an elastic. Does it in a way that allows other + DOBlendableRotate tweens to work together on the same target + The punch strength (added to the Transform's current rotation) + The duration of the tween + Indicates how much will the punch vibrate + Represents how much (0 to 1) the vector will go beyond the starting rotation when bouncing backwards. + 1 creates a full oscillation between the punch rotation and the opposite rotation, + while 0 oscillates only between the punch and the start rotation + + + Tweens a Transform's localScale BY the given value (as if you chained a SetRelative), + in a way that allows other DOBlendableScale tweens to work together on the same target, + instead than fight each other as multiple DOScale would do. + Also stores the transform as the tween's target so it can be used for filtered operations + The value to tween byThe duration of the tween + + + + Completes all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + + Completes all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens completed + (meaning the tweens that don't have infinite loops and were not already complete) + + For Sequences only: if TRUE also internal Sequence callbacks will be fired, + otherwise they will be ignored + + + + Kills all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens killed. + + If TRUE completes the tween before killing it + + + + Kills all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens killed. + + If TRUE completes the tween before killing it + + + + Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens flipped. + + + + + Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens flipped. + + + + + Sends to the given position all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + + Sends to the given position all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + Time position to reach + (if higher than the whole tween duration the tween will simply reach its end) + If TRUE will play the tween after reaching the given position, otherwise it will pause it + + + + Pauses all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens paused. + + + + + Pauses all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens paused. + + + + + Plays all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays backwards all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays backwards all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays forward all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Plays forward all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens played. + + + + + Restarts all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens restarted. + + + + + Restarts all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens restarted. + + + + + Rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Smoothly rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Smoothly rewinds all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens rewinded. + + + + + Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + + + + Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + (meaning tweens that were started from this target, or that had this target added as an Id) + and returns the total number of tweens involved. + + + + + This class serves only as a utility class to store tween settings to apply on multiple tweens. + It is in no way needed otherwise, since you can directly apply tween settings to a tween via chaining + + + + A variable you can eventually Clear and reuse when needed, + to avoid instantiating TweenParams objects + + + Creates a new TweenParams object, which you can use to store tween settings + to pass to multiple tweens via myTween.SetAs(myTweenParms) + + + Clears and resets this TweenParams instance using default values, + so it can be reused without instantiating another one + + + Sets the autoKill behaviour of the tween. + Has no effect if the tween has already started + If TRUE the tween will be automatically killed when complete + + + Sets an ID for the tween, which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the target for the tween, which can then be used as a filter with DOTween's static methods. + IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId instead. + When using shorcuts the shortcut target is already assigned as the tween's target, + so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly. + The target to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + Loop behaviour type (default: LoopType.Restart) + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + Eventual overshoot or amplitude to use with Back or Elastic easeType (default is 1.70158) + Eventual period to use with Elastic easeType (default is 0) + + + Sets the ease of the tween using an AnimationCurve. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween using a custom ease function. + If applied to Sequences eases the whole sequence animation + + + Sets the recycling behaviour for the tween. + If TRUE the tween will be recycled after being killed, otherwise it will be destroyed. + + + Sets the update type to the one defined in DOTween.defaultUpdateType (UpdateType.Normal unless changed) + and lets you choose if it should be independent from Unity's Time.timeScale + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the type of update (default or independent) for the tween + The type of update (default: UpdateType.Normal) + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the onStart callback for the tween. + Called the first time the tween is set in a playing state, after any eventual delay + + + Sets the onPlay callback for the tween. + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Sets the onRewind callback for the tween. + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Sets the onUpdate callback for the tween. + Called each time the tween updates + + + Sets the onStepComplete callback for the tween. + Called the moment the tween completes one loop cycle, even when going backwards + + + Sets the onComplete callback for the tween. + Called the moment the tween reaches its final forward position, loops included + + + Sets the onKill callback for the tween. + Called the moment the tween is killed + + + Sets the onWaypointChange callback for the tween. + Called when a path tween reaches a new waypoint + + + Sets a delayed startup for the tween. + Has no effect on Sequences or if the tween has already started + + + If isRelative is TRUE sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + + Methods that extend Tween objects and allow to set their parameters + + + + Sets the autoKill behaviour of the tween. + Has no effect if the tween has already started + + + Sets the autoKill behaviour of the tween. + Has no effect if the tween has already started + If TRUE the tween will be automatically killed when complete + + + Sets an ID for the tween (), which can then be used as a filter with DOTween's static methods. + The ID to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets a string ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via string is 2X faster than using an object as an ID (using the alternate obejct overload) + The string ID to assign to this tween. + + + Sets an int ID for the tween (), which can then be used as a filter with DOTween's static methods. + Filtering via int is 4X faster than via object, 2X faster than via string (using the alternate object/string overloads) + The int ID to assign to this tween. + + + Sets the target for the tween, which can then be used as a filter with DOTween's static methods. + IMPORTANT: use it with caution. If you just want to set an ID for the tween use SetId instead. + When using shorcuts the shortcut target is already assigned as the tween's target, + so using this method will overwrite it and prevent shortcut-operations like myTarget.DOPause from working correctly. + The target to assign to this tween. Can be an int, a string, an object or anything else. + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + + + Sets the looping options for the tween. + Has no effect if the tween has already started + Number of cycles to play (-1 for infinite - will be converted to 1 in case the tween is nested in a Sequence) + Loop behaviour type (default: LoopType.Restart) + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + + Eventual overshoot to use with Back or Flash ease (default is 1.70158 - 1 for Flash). + In case of Flash ease it must be an intenger and sets the total number of flashes that will happen. + Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value. + + + + Sets the ease of the tween. + If applied to Sequences eases the whole sequence animation + Eventual amplitude to use with Elastic easeType or overshoot to use with Flash easeType (default is 1.70158 - 1 for Flash). + In case of Flash ease it must be an integer and sets the total number of flashes that will happen. + Using an even number will complete the tween on the starting value, while an odd one will complete it on the end value. + + Eventual period to use with Elastic or Flash easeType (default is 0). + In case of Flash ease it indicates the power in time of the ease, and must be between -1 and 1. + 0 is balanced, 1 weakens the ease with time, -1 starts the ease weakened and gives it power towards the end. + + + + Sets the ease of the tween using an AnimationCurve. + If applied to Sequences eases the whole sequence animation + + + Sets the ease of the tween using a custom ease function (which must return a value between 0 and 1). + If applied to Sequences eases the whole sequence animation + + + Allows the tween to be recycled after being killed. + + + Sets the recycling behaviour for the tween. + If TRUE the tween will be recycled after being killed, otherwise it will be destroyed. + + + Sets the update type to UpdateType.Normal and lets you choose if it should be independent from Unity's Time.timeScale + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the type of update for the tween + The type of update (defalt: UpdateType.Normal) + + + Sets the type of update for the tween and lets you choose if it should be independent from Unity's Time.timeScale + The type of update + If TRUE the tween will ignore Unity's Time.timeScale + + + Sets the onStart callback for the tween, clearing any previous onStart callback that was set. + Called the first time the tween is set in a playing state, after any eventual delay + + + Sets the onPlay callback for the tween, clearing any previous onPlay callback that was set. + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Sets the onPause callback for the tween, clearing any previous onPause callback that was set. + Called when the tween state changes from playing to paused. + If the tween has autoKill set to FALSE, this is called also when the tween reaches completion. + + + Sets the onRewind callback for the tween, clearing any previous onRewind callback that was set. + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Sets the onUpdate callback for the tween, clearing any previous onUpdate callback that was set. + Called each time the tween updates + + + Sets the onStepComplete callback for the tween, clearing any previous onStepComplete callback that was set. + Called the moment the tween completes one loop cycle, even when going backwards + + + Sets the onComplete callback for the tween, clearing any previous onComplete callback that was set. + Called the moment the tween reaches its final forward position, loops included + + + Sets the onKill callback for the tween, clearing any previous onKill callback that was set. + Called the moment the tween is killed + + + Sets the onWaypointChange callback for the tween, clearing any previous onWaypointChange callback that was set. + Called when a path tween's current waypoint changes + + + Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given one. + Doesn't copy specific SetOptions settings: those will need to be applied manually each time. + Has no effect if the tween has already started. + NOTE: the tween's target will not be changed + Tween from which to copy the parameters + + + Sets the parameters of the tween (id, ease, loops, delay, timeScale, callbacks, etc) as the parameters of the given TweenParams. + Has no effect if the tween has already started. + TweenParams from which to copy the parameters + + + Adds the given tween to the end of the Sequence. + Has no effect if the Sequence has already started + The tween to append + + + Adds the given tween to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The tween to prepend + + + Inserts the given tween at the same time position of the last tween, callback or intervale added to the Sequence. + Note that, in case of a Join after an interval, the insertion time will be the time where the interval starts, not where it finishes. + Has no effect if the Sequence has already started + + + Inserts the given tween at the given time position in the Sequence, + automatically adding an interval if needed. + Has no effect if the Sequence has already started + The time position where the tween will be placed + The tween to insert + + + Adds the given interval to the end of the Sequence. + Has no effect if the Sequence has already started + The interval duration + + + Adds the given interval to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The interval duration + + + Adds the given callback to the end of the Sequence. + Has no effect if the Sequence has already started + The callback to append + + + Adds the given callback to the beginning of the Sequence, pushing forward the other nested content. + Has no effect if the Sequence has already started + The callback to prepend + + + Inserts the given callback at the given time position in the Sequence, + automatically adding an interval if needed. + Has no effect if the Sequence has already started + The time position where the callback will be placed + The callback to insert + + + Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue + then immediately sends the target to the previously set endValue. + + + Changes a TO tween into a FROM tween: sets the current target's position as the tween's endValue + then immediately sends the target to the previously set endValue. + If TRUE the FROM value will be calculated as relative to the current one + + + Sets a delayed startup for the tween. + Has no effect on Sequences or if the tween has already started + + + Sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isRelative is TRUE sets the tween as relative + (the endValue will be calculated as startValue + endValue instead than being used directly). + Has no effect on Sequences or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + If isSpeedBased is TRUE sets the tween as speed based + (the duration will represent the number of units the tween moves x second). + Has no effect on Sequences, nested tweens, or if the tween has already started + + + Options for float tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector2 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector2 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + Selecting an axis will tween the vector only on that axis, leaving the others untouched + If TRUE the tween will smoothly snap all values to integers + + + Options for Quaternion tweens + If TRUE (default) the rotation will take the shortest route, and will not rotate more than 360°. + If FALSE the rotation will be fully accounted. Is always FALSE if the tween is set as relative + + + Options for Color tweens + If TRUE only the alpha value of the color will be tweened + + + Options for Vector4 tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector4 tweens + If TRUE, rich text will be interpreted correctly while animated, + otherwise all tags will be considered as normal text + The type of scramble to use, if any + A string containing the characters to use for scrambling. + Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + Leave it to NULL to use default ones + + + Options for Vector3Array tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Vector3Array tweens + If TRUE the tween will smoothly snap all values to integers + + + Options for Path tweens (created via the DOPath shortcut) + The eventual movement axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + The eventual rotation axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + + + Options for Path tweens (created via the DOPath shortcut) + If TRUE the path will be automatically closed + The eventual movement axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + The eventual rotation axis to lock. You can input multiple axis if you separate them like this: + AxisConstrain.X | AxisConstraint.Y + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards the given position. + Must be chained directly to the tween creation method or to a SetOptions + The position to look at + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target towards another transform. + Must be chained directly to the tween creation method or to a SetOptions + The transform to look at + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + Additional LookAt options for Path tweens (created via the DOPath shortcut). + Orients the target to the path, with the given lookAhead. + Must be chained directly to the tween creation method or to a SetOptions + The percentage of lookAhead to use (0 to 1) + The eventual direction to consider as "forward". + If left to NULL defaults to the regular forward side of the transform + The vector that defines in which direction up is (default: Vector3.up) + + + + Types of log behaviours + + + + Log only warnings and errors + + + Log warnings, errors and additional infos + + + Log only errors + + + + Indicates either a Tweener or a Sequence + + + + TimeScale for the tween + + + If TRUE the tween wil go backwards + + + Object ID (usable for filtering with DOTween static methods). Can be anything except a string or an int + (use or for those) + + + String ID (usable for filtering with DOTween static methods). 2X faster than using an object id + + + Int ID (usable for filtering with DOTween static methods). 4X faster than using an object id, 2X faster than using a string id. + Default is -999 so avoid using an ID like that or it will capture all unset intIds + + + Tween target (usable for filtering with DOTween static methods). Automatically set by tween creation shorcuts + + + Called when the tween is set in a playing state, after any eventual delay. + Also called each time the tween resumes playing from a paused state + + + Called when the tween state changes from playing to paused. + If the tween has autoKill set to FALSE, this is called also when the tween reaches completion. + + + Called when the tween is rewinded, + either by calling Rewind or by reaching the start position while playing backwards. + Rewinding a tween that is already rewinded will not fire this callback + + + Called each time the tween updates + + + Called the moment the tween completes one loop cycle + + + Called the moment the tween reaches completion (loops included) + + + Called the moment the tween is killed + + + Called when a path tween's current waypoint changes + + + Tweeners-only (ignored by Sequences), returns TRUE if the tween was set as relative + + + FALSE when tween is (or should be) despawned - set only by TweenManager + + + Gets and sets the time position (loops included, delays excluded) of the tween + + + TRUE after the tween was set in a play state at least once, AFTER any delay is elapsed + + + Time position within a single loop cycle + + + + Animates a single value + + + + Changes the start value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + If bigger than 0 applies it as the new tween duration + + + Changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If bigger than 0 applies it as the new tween duration + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + Changes the end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new end value + If TRUE the start value will become the current target's value, otherwise it will stay the same + + + Changes the start and end value of a tween and rewinds it (without pausing it). + Has no effect with tweens that are inside Sequences + The new start value + The new end value + If bigger than 0 applies it as the new tween duration + + + + Used internally + + + + + Update type + + + + Updates every frame during Update calls + + + Updates every frame during LateUpdate calls + + + Updates using FixedUpdate calls + + + Updates using manual update calls + + + diff --git a/Assets/Demigiant/DOTween/DOTween.XML.meta b/Assets/Demigiant/DOTween/DOTween.XML.meta new file mode 100644 index 00000000..c87a5201 --- /dev/null +++ b/Assets/Demigiant/DOTween/DOTween.XML.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 34192c5e0d14aee43a0e86cc4823268a +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/DOTween.dll b/Assets/Demigiant/DOTween/DOTween.dll new file mode 100644 index 0000000000000000000000000000000000000000..644440225e318ff1bb7428b9f2ff1eccf1afc48e GIT binary patch literal 144384 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

v_dY=lyHYI_ZpyGmOsUd?RuX1CFDL5 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%0D1%43bKLiA^ec6M+v_mJVSV%@CxB|Le&f7 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 BNZ + + + DOTweenEditor + + + +

+ Starts the update loop of tween in the editor. Has no effect during playMode. + + Eventual callback to call after every update + + + + Stops the update loop and clears any callback. + + + + + Readies the tween for editor preview by setting its UpdateType to Manual plus eventual extra settings. + + The tween to ready + If TRUE (recommended) removes all callbacks (OnComplete/Rewind/etc) + If TRUE prevents the tween from being auto-killed at completion + If TRUE starts playing the tween immediately + + + + Checks that the given editor texture use the correct import settings, + and applies them if they're incorrect. + + + + + Returns TRUE if setup is required + + + + + Returns TRUE if the file/directory at the given path exists. + + Path, relative to Unity's project folder + + + + + Converts the given project-relative path to a full path, + with backward (\) slashes). + + + + + Converts the given full path to a path usable with AssetDatabase methods + (relative to Unity's project folder, and with the correct Unity forward (/) slashes). + + + + + Connects to a asset. + If the asset already exists at the given path, loads it and returns it. + Otherwise, either returns NULL or automatically creates it before loading and returning it + (depending on the given parameters). + + Asset type + File path (relative to Unity's project folder) + If TRUE and the requested asset doesn't exist, forces its creation + + + + Full path for the given loaded assembly, assembly file included + + + + + Adds the given global define if it's not already present + + + + + Removes the given global define if it's present + + + + + Returns TRUE if the given global define is present in all the + or only in the given , depending on passed parameters. + + + to use. Leave NULL to check in all of them. + + + + Not used as menu item anymore, but as a utiity function + + + + diff --git a/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta b/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta new file mode 100644 index 00000000..258ca876 --- /dev/null +++ b/Assets/Demigiant/DOTween/Editor/DOTweenEditor.XML.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2e2c6224d345d9249acfa6e8ef40bb2d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll b/Assets/Demigiant/DOTween/Editor/DOTweenEditor.dll new file mode 100644 index 0000000000000000000000000000000000000000..abad050d891371b86b3dd1572cc8d50e02661dd5 GIT binary patch literal 44032 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 P00000NkvXXu0mjftl$Bl literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta b/Assets/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta new file mode 100644 index 00000000..94b8bfeb --- /dev/null +++ b/Assets/Demigiant/DOTween/Editor/Imgs/DOTweenIcon.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 8da095e39e9b4df488dfd436f81116d6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 128 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 128 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Editor/Imgs/Footer.png b/Assets/Demigiant/DOTween/Editor/Imgs/Footer.png new file mode 100644 index 0000000000000000000000000000000000000000..e29d02fe18b777b1d316feb647b339803c5126de GIT binary patch literal 4409 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 literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DOTween/Editor/Imgs/Footer.png.meta b/Assets/Demigiant/DOTween/Editor/Imgs/Footer.png.meta new file mode 100644 index 00000000..995d699e --- /dev/null +++ b/Assets/Demigiant/DOTween/Editor/Imgs/Footer.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 7051dba417b3d53409f2918f1ea4938d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 256 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 256 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png b/Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..e48db5ef7a2b83eff50d6e3b5fe9ba3bcd4a5015 GIT binary patch literal 4429 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 TqmFO~00000NkvXXu0mjf{EM6C literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta b/Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta new file mode 100644 index 00000000..bbc3be04 --- /dev/null +++ b/Assets/Demigiant/DOTween/Editor/Imgs/Footer_dark.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 519694efe2bb2914788b151fbd8c01f4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg b/Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4d710d719075150879b1ee76680af87791c4d3b3 GIT binary patch literal 22787 zcmeIa2|QH&+dqD!Qj&?1R7`~wAyJkvZAdEFcT*`#Dj~9;R!Wv4WSt60Vv;TEWZ#W_ ztl9T{8D>56|J1#H@89!#e&6kRUeEvadfcx&HRsGZpU<_vulIGG!|Gu5LtD+8UcOB)-Y6`qJI{C3sflyDh}?ka!jG-}+}Yo^v4{WE&VJw6AN%TpxY*f% z^4NJG3`EXjBv3ECS#zHgIspCSzn~ZEHP<{&TeAjr3f1fz)wAyJzk~>P0w?cRXwUMV z#ul^tm)K6MgSJ8cwKR`IFZvkDN7eKT3n2;eDSLZe8Z(a z=-yMByTTXl{v^>CzoXgEkT6Kp+jVZ+`&R~;2i&Z?b``odcMZsw3lBty*gTprcfWPO zu>90kqw|%hbxI$PbcB{?hp(va&CALPu6=UsmU(EvyHHY3+i2$A)BH+z+d^`N{rn$a zF{n5We>=9!+^X4p_cd91%WZd2fgm>AhaH02qz9I%T!c-J-=qv3b-2!SVQ_!AGNJo0 z_I4phR}Tea@Y*ChZsqpa4b4^enJN{Z0)v*+u&X1}v8skEo<7=3;<6=eUIp2Ql}{%W z1%C97)4lfOa}|YNiyO04#jKe(po)I%_1Nt)t|U9+x$A{FWxw6f6S@4@hGKOsE0G~O zd9ox;Tk*h02P_sjI~gz^;yMD8>T=V}D5o{@&FoW;T%FnR;-bo3$U4X(??;ou6!4VnKd3 zu_i4}%&sp7jP^eLiwSUO^&c0M)%}{6Nyy>V{H%PT;33E9M!Ns%5#?j(t%@zFyYej@ zmYCerd`d260Zqi-k`N#D(J7*dRrzdo!S7!rKGjXr_kqhQ>>Ba%U0+_39 zGq;R1Y!HpGz~TzsyJKGzh)-gaPy+Ya( z)Mht(lMIsN?c0)T)OL+T*XsqL-li$%A1H4sD@ho-RzRY@9+(fiVsK9D6pHs$4tmRZ z?jv8c*W@&Qv`(+H`xu!c-1!wb8*|1z-O!sfjv2hxKkKM za~c;|n3DN(1#h*~&Z`X!?995Zc=Orv9RIFf!{ZyLC7%Q|2k3b!$!@mMhRg7< zb9-qQA;V18*^H!D8ljbFx81P+Ov-4+LroEzbOD7*vGzjq+tB6jwVc93S z!dSV?gOr+0X1&{MvDpuQ(!P{*+RXcVX>%{d8-2N+7g^9VZ0S@=T1cPb8Jc(B@D7q8ni(M;dojb6iK%PH z&3;a^xOR0yX*ka{!u|3K;ne0ZDb00GU-7b=Ue|6ubywe^9x+r*zAC72ZsTpUd7)Uz z(Okib4Zf|^px%rQAGjv(i1MM7tNJtzBO3q1gfSh}r%8jg9dl%Q%G0MZvz(9baYDo) z|IvCGp0cY+3NtyqZ{x(@B^y)=Im}lgS6L95j2vC=xz2(P_W=VHF0EDVOYS6<#l87& z4FzQ>GQc2Op*JGR{9}G4&lni+qMqU&VyU=vce5yIp1K-a8robywTY z(Boh2j^U&Z-JkJtM4k@>3TuZxJE2?Ja^o_Riq(nrnOdj*yidE>jI5$;ldHbvpAR9J zfwC0Q@|EblRH@4isxjy$!nrh|s8^Gh!ke+AQRTwk8q`P0%Dv5U1nzD^O}*Q-(1{S# zcw3V|fgqQh(5w;cP1tXXOMjwJ#DYkpmS3ORIZ;A&ci%QJCeqIn7gN1H_Sx;smpf(QFA$F@JC=hE+Uz*Yt5e#3%d+?Qc-@`N;?5GqgDPlZ zaP@qd(CvW?d#QUi0bW@FvgTq(MoJ}?yBSY|#KYQ>r~B zN$?@*_z6-~O`(m_u}fdjX>hetGhym0qHACU59?@z@EKu?pXSOw}jqPhu1v2hH`JC5M_)hEv7+Q z;9*2;`O?}=KNchel4{0LI0uZG}G-4s>*yFMbVGnvm( z6pdx)050S<&~w~*OdjOlLrVhV@#L1Rl%?RP4Q?e?NLYal17vxjtd@@ zW# z3JdzsI79i&f}RvEup^J2v7q~4NekQHEB$cj0z8V=dE32k<*!#bfRuh?L1Kd}s7^Kh zbk1NYvVFA-MdKDj*h*PYnGVzM0isVLN(0r)Uq{=!lu;MkD)zr@sXmnfUelNS|%u~+2&#p*8t1c1(==5?cVx%L|^EQ5iaVw zvAHU*%fX6zvy|C_IvHbA{Ru_28y-pJ7%D)mGXt1Z?R9WfEz%3WUF=MnSG6&Ct5gxr zt61_O@Y%`^d~CAlZnMx%Ewai^?ixv|ASx(J;wRug=+)5ua>QL^EIHx?j{2wSzY` z2Wx9V+T3E^+eL`nG~Lx9tZ)Lw(PJek$W5N^Y@cWi@AMK#JSWvW>)EL{ z8n~hN5tWVF)?%X0YuTh(of@$mLa*d|oInlDZJ<0ij5cmHomA_%e=ATnHU&94IJ#rP zO2SjqHczT*2yfDklNC2Un~pWB8QTz&BC`yUR5l(k2#BkWSCC7HKBnyQp>xusz-YTJ zHT@IY#xA4SI!~sWhx>P_aPhoYF&BHELlYHkfu_&Omk+w#px&KvYM)i_-kH67NI~~7 z9P4zwBg_}nKiOt9*+VL77vF`-DLZ`Zx*@+(sr{nhaAk3q5tk+rTaxem>DHkO#(C0b z2)m-KB-9fk_E$A7_&vRObTjX9d&PTN5-APGcmhz4LOl!tzkCdw{yRLVN2NhNJu^_yqwL!44QfjrOw7T;Zd%D0>#xcpE`CEyT zlRABM1G_xTW|ZZ1x-pUXi(6`JTUQpMUE8EFUnl%aO3Wv*!W@R}`wK}yA0E|Scd>oN zf;L!&4PQ-P!u!)on(NI*(yI;gW3jeD4{2kiLVIMsTUuycxx4LCE*u_Snk@escl$wxt`_96d65cOP?@jD@LBOdG?6 z4r?2*ptZ_-lRNEJls*|b@Ay8rCw+6mtO9(pQb%1cAl@(0^r&D=I4+p#yFK$@#SLwk zBBp40uxuM!hnuuT%cte)n^~I2KGummKTtpJ$z8@yAvIs4h6@GqYi*(R+V+ifro@G# zwqD%g_~Ei!5aotaTYXoEl}(von(r!2ZxaRnmx&0P;nk|x2 zfiuOv?#9q5nd2wO(CYreo1p?vN?LGPVF`@5N=wcxaUCzB;n^k%-!tpHuOf?@yv{U( zufupFF$w@RGmmCj(AHRz(FKc>z9G{q`Rbc&6z51$3y!tiA6ZZa;T~<)v3aI9O4?wU{ijIVD5w%OIp$o3T`*RYQ{s+UiFY&D&t{TD&VP#%gzpRz9 z{H`-SGE`yq+OFFUvW8IH{f$-u6$8W zVWnS^VbqO;G<%~LcmG}za=lOCtz-+61P_bF&hsMc5)SN=cvPYKm66g^D=~1uz^S}t zEHJw;E044!gXatlOs=Vm@1NoH=9NhNnycma^@Zw)xseYX(^5Bbq2-akfA)I?Ww{Sx zb#u5QOb0WbmFQ)$`GHxV%L}k3*ua}iul^YjI|hsfg}8>kpJf4&Va-)BNL^)_x2+3^O348C!#%emV7Y z5pMzkfnYo75ftSTKVezcj0N@Y1^Ds<3o?1jf>irJV1Y215sQ9|1DpD20sx54Zvo&^ z|4+9@cWF^iBiq)^F}VPsrfh&IA2IE=FfnHp+zB-!$^aMo^Rm%Xa+tAhI=B-$3$i@Of`}16_w_fINB_J!hU5<~jWB_T*pV#<3FD$@CJi&Bv9gwcn@9b2<29R4 z7wdKz6YsjLb>zA^a^{*1yTX)7d-e5mF-gQPMV0DX1NJ_{bBc$W*Gtj~r$g{u^uuqs zpO+T#hnjr0&nz%L@#1}RqdItiV9kMZ(@{)Hz7R*Th2SE;X}gWo~5H4lY?I z&s-bNf(RN6dpvy&mPipYqAh46UOyH7r=zyWw}>T#4JiPuJ5KtCDWT^dTmZ2901KLH zVnI7GpG6tqQy33;#j)C-YGdrtgB#Cb=*w_L@bpF)(~q74IAjq4+Fy@;mMPXG@<3?B zdg-LHluQ5|=-x5CsYD@3qGxr{d{Xg~^$@qEnM={A${nGBDH{44y--gry_HmU>5SA& ze9Yb~ku>t=fY~ttd~|A=PNJ?pGp;_B?iH-${xBfM-Bk)MxnIbF-bMi>v4LWP&x8g2 z;RV{jpe}(zh|QA)ojyuH)}RsbU~&|CY38R^=$i0>zkXkXR*#~t{8&2Mzvw~|H*jn4 zhwj#|dw1=rI4fv;4{s$?s>SCUc0k1D{_o-c70dsc!{6fu%2Pwy z!I`*S`(Nci(Uf8dQm7YIxU>!vxTtcZK=$z;{a9{?!C*!xehW-`OrUK{>&aox z;y%ik!rN7os!gRCzBdU|gBa!pqsblEq0%-Vo76}+7i3i~!hTOd?*+=8UvL=P=9xT; z&U*X3mqYieOSG<$DYr3Y3$LIDmd6e4?>r#Zf{vG6w<17Pm5B!4jn(Z z8+Tb^%#mubTZLa&vag|U*yq8^1u2Qc73xon%lF4s_ov~>*`icdr~`k zYGXCz%HCWQz3GYX_T4XTcTf5_Mvl5Ti`Qi7hh}9GCi|S2cjMfC?&aDPZCzaEd{%4d z+oxNK%-BeRPN>8?gY(-KZYky@IZ&)RYclH84HG^jP*V$O9&+wu{>vS5vBq6y1wjw^ zGWM<=WaP9TskWxz5jAf!qyV6X#?21DbdBt^hb)uI!)Wfy#s5@Kn{Amm z-N}MPhLFDNh!%EJ8Dwvm@+3y#Bts;EuIEF4nr}n zae^>!LHsLVYX72*IX)TkR-ZfHEc`X&g~r~Py`m?FxICHb+;iXWdoSc4CT{~Tsrvak z(RMJ*5-lv8a`H`kUC9ariWYf}O2^Wd2?JOR6aO4>C`R8yK3<2H=6;Zn^AS^hODlxc z3AiM9#tXaTvjNj~9*=k<(u~T|!Csg5YV!6EzoC1jDSAN;{!Z)8%8y;=Lk#zD3=icV-TEQ3#`;aD_icVj1)wTqQ%4w#s1QnKbNtJRQr= z=zEAF>q!7G1%os#`)*z;C;3JMiN~@*^<1PBcS6jFpk;o>_i)aD=v#m+E*V&0LCp300DL}6phN{v zAL3sG5-%t3R0*2u_X{r28-#b%CfUnRINr>5IH0petWE$@yo7SLyyzT$2bk9gpI5iH|^C%VH}dIZQY7N-;6;lDIU z3`(2XpM^7g_AcsJU}fi30o}tIy~{^0RUf_+5)zbBA9(pg(p`TRwEnKQyu|`DE;_~Z zd9W#;zh*M7#(? zx7o#lFqn0S#!GTdU!5Bu(AEvaZYnhm3f=B^IonS8h};8O`mtAeVP4+zL&c^J53`=rB{>yt-i2@Dm5ex^&aa&gK^9 z&+k3hdn`|SQQTMj(?_*qUTxSro;Iln(P!H{=tRD256Vpv9mug=YnI^BonJ@n6>jt~ zSjt^FRwU4}qMJ2G6Y^2boN!t^e%m95Ax?nc#(aJNeIr0Ih>t@$D?s@|EQVi>F`aUj z(8s+DTMpfIc)Bw!`hE9v&$EJS9eqWltaRN);u1(**Ikm#Hf^l$B`n!w_(sQy9=vTs z+1Jp0X(2q&%6&`t_d(i@#8YQ`KK1jwB%U_25)*fGZ;;l<4O`eLw1ip&zlR45DD23S z4#FIRz%cNVUTKg=e0(-Bf>Bdpgx8qAIg0L9=%Z38(u=4xL*z05@J9V88vj*LzAXMM zHg68WV`KeLY{?dml4y@f=`wfPu?(m>Ge<+i(wA&>q@|!>FqDLSbw+Zb;I) zqG2yzVc~Mqnfswx23720aSw~8I283uOPoA13Bo<`V&aYt>A@EJ{oXRx&LhEtm>m`! zQ-)giZby06e6Wb%771WqeBmL(n5rPk9KF-wqI9ugg&|NGm?D0+<#~2e4qTEl&%xZ3 z4);+(%}d43#5gb*41TH*mLvfm{@bINY)8V<(mZw;ZJx>~1_d$x8+us^^jF}KALaJ% zs(IlJG$T-SkYdyCiQ&4DMj}Gxmv2k|I9_uRMM%~fp>$IZRv5TW=&uw%>}zx1YP}0qsyLy%u$) zp1m0$%hOeOGeV|pP)0fIx{FQ6RPms=ezKixiT#weKFDqVFQCQVsEVF)#ovfJ|7`cx zq#of1(k$pY*6O9TT;e*v8_j0!ET~u|fP0^mYCYfuWK;5Ud}ljnW`#}mIr{2-FY--2 zVEE{9TZ_s@wF^$QR&~n15tX2+GN-szwCwO2|4fwvK+b3PcWux8!)}tD%y{wyo~Wi4_{*(0`0sACRjt~ z)FW_S1WvkjWt5j1xbaKER0wQJ z<(guS4F|VOrGbgX?wpt>0Dz1f} z3FI)ex{ujey}$S6MsqwfF$r!w)dIqyG^LHc6IX)_EY^O8?dkxIF%XRm2)S-!5wvGBnz$$I}MoxEnb$TMH66FZdy!>w(%g?MY0+wUYBgoM&- z^g<@RGUjjZxUIV1_A`-JYu7pY%hn^f-keMJa~bXm{i7{NS}?r5D}H})ilp3(YV&E) z#K6@2mzkM5;vp(WII?`a#WSKZ6FQe>bv?hBJ&*Rhv$<^HbpHF*O}K_vR}S7x6N&D4 zPS*lsHgBFJF%j&-$Caa)FlOmU#AT$pg)qL?4ur@EhV9Q!i)*FI{mz6O(=fPu#aH*p z29-eT=!@fKLhcK-S}l@A+o!ggO|;*sDN-i|tusUu0`8o^+l!{^8h0Gj%)(>$yIvj> zGd)O{tmL5sd{$*<0qmCt9=~9T-wJc%Qj{{JeZ`85s)SCiC1u~KvWlAhE-z>>3?b^t zdNEm0u?|g=OKaiS zo`=fI&dGaTlb7S~wiNqi&lTL;M1dOa1y|l%H{EPzPFh{J;rBzTZ5$j5)8yTC9`^=I z3w*<;4CIAIC)ds8OnT(rjdsePb_?_VF$3T&OFsrzD}cGaPB?^AvVfwGRSOASVK}^; z2pfpmdxA5dsyNL5v*Oy_TWl{R-Ibg6@O$WDR;YJg^4_NPPiMATJ%edOh2AR{0#p3s zJ)YkNBwAWh;iFXX&#U3Rp3z2z^Sx$;g=O|47Z2BXl9CNyi5HjLn20^%A2kwQ8A1uF z*nHe5s=cdUduQB+Ny0SF5gTj0!}dx_O^oPW0&2h4%Dx!8R>$YLvF7R=@(UV>Cg~|= z3i#Su(rq(jRl9B10O2`WZ#b17IeiREUO*#{CCFUT3j>n`+4ed@&lK#74OIy$qA(Oj z5K*9=HPSRHmbosaf{5uQePl$Ed-#7?_&lLr$Pv5W=gl@YQ3AtD1EC-;mnbh|9R_Nf z;z-!HxQ8+ST9ts3SRgV2)iVO=dyQmsQpjy za8<5HMl@c8cK;1ZhZ#v2ehYx{5Y^*h4q;j1CLhdutQ&RSSe$NpF~o1#u^RRPo9gcsba%Joer@x<8o8yNsc8 zn1Sq*g|AD;&GBKt_=W6f3e0QyDe2E@ZI5)I_hR%7cTv*Gs;c;A?Rb^$6(BUdLFv_0 z!mF%BFYQ8U+_<|5u9J%R<&bLPbQbSbqNw5?eaySTAjFFLJPCz!^{B{A+HUmxRc{j; z79{inOynFz45-UR`@QHrqsSpUCEr|teD#|%^WjX(i^4pWg+{KT>dNWR9hApx%~Xl6 zIG^}&QMfvKAZdqzZg?e;F#iGB3pWy2Q0NPI!DR*0{Te;SKvRV(Nw%e@YnV9H#n@048RjVm8y%L{CG&vrk zOeu`^LM2LW>-*VQf`}U>xgyc%z_g1joD8pCxFcD|vv{u5ED z!l6o^v6aEZMdhUxBhZb^2D#lFRE>>Mg=zZ{L5!iRHI_@;3;#m-(FmbyD@e7VtaJiB zCbd-WmD9)w8aL|Mf$ondrgR+VCiTONunSv}JWUq#F0PKSZGwcQ(Z=f%>B-9rVnrJXGR)j!BG1W4b z5ir#8J&=FS#hcKNSSG~=R5*FQ=vi9SR1^~-Rm7cmwP6%F00gbHz`=9_zVs$)<|i76 z_mW?*n)C{L2f~+iEm8!qQR5Szx4%$H9-R^NScm!AMVoX|AKGs>p^QL<07AloRP-jx zt#gc?N5+P#=7Tb(Zv^3|#y3a|6I<8Z7s+8k!2mM$p&LG;d1X@>iXO6EQ_HgRdU2FT zASBiG%_S}2r9onFfrTgBv=DX2W%y<2d zSamP95g$c>&)%<2;%I9~<<^8bXDT2X9{FO1jkLyCP@*hv!P0k5XbRZ@S6!S#z6JwU zG9UQoc1yo;wR{~TLT#f``>@Z8dGAK)Eu_J@ziUKehG+e2{hn3WH8G&!&VC9 zks0X)pQkHd`UVJk)hXlJCl0VT!Zrk|_%SrO#sT=(&{*HBF4f0I=s4vNEu?7eyf!=Y zBW76gElk=7FN@;w1Gs@!vIah!aYWg)C}x?M;RPV(K1*P?m#2V(W>LdsnS)6b+^ARE z4?6JGU)0(n38H_}r2kKPwz7?;xonf~Q-hoIQbWi&i{VAu&sGzcm?#NZItJ6YLZj-{ zs9vND08Fb50%+Px5JVI3jb9vA#bHc6?(`#sOFIQX@S$cjZIn<$P>m=f;ygo|xBTQm zk2#Q~k%{*?JHaKyz$G+JgG=Cn19cHjHDG!^!WKHqJBa;Nv<8B*s@t!G@<5RaTrJj4 znDIk`g9^=qnKU$}I@V2ksB(-d`!+D3=IV}(mnrcn9^*e7tE8Hi>jv#6F4Uc~PVKznJ%`9a3=!WeQC8r`wsvAZqxXZZW2QEtwOt zcih539y`SJBP`OE#~WmWtvuwgg>5SUL{mK?{!d>$z#dJB2OR8F8JavGjXbo^`9-UN z^FOfrqTzFp6r-hS6p)in@zH$wDf47(exOqdb~IQ4ABwre35E0_s=|Q$hm}5foo&dO9~mdw;~R;^7d;12 zjOVg&5w4-2V2Ihq2u>W3rV3OxA?n&CMCvo}Oa?RV>k$;y9Z1hU2p*|q0)UnsTj(t? z&k;r$L)4@DKEmUhuzXQ0sE{~96<*=q0o>O@8i%~9JGVr1JHU>oTmf4-PM{5f=N>F) zPcuwB(0qXLnQa9bgC_ItQ;s`uh_%ab2Bwe# z7o#Y)0+?}qZ3YU^kayvfO^6SIo%rA(H8*b08AJmof>#W82NdJUr$kxeh4q>-^I`-SrAP!h4gDQAq5~@!JnplG zgM{GdZ|Qc;Qm>?uj%F?aMq#uo3;N<5+n4B(YiU9r6Ro#5OI)SKy4{q|DauYShD%RW z1Alo3_rom69*<=jW0zLvS3{`ebuzVQg$_yI>jv!JeVFc!woU@|cMek(Ss z1QZ2Cn$7HDOimD59snqj7EHbZ6Z=Y$4e+mDzd~6W+C)hziOAbHPwU!*mtHNI^XdH} zvD_iM>PRYdx$GqR1i!OqHH+qMmYd3j`VxgZI(-8HyvgEr5di4NMw(NHx+jTe1fZtjkG42+vo>=Z zd1MSbdsOwuxDxK$OY##R4=*ZEU6u_E#|_-jnFVF0On$ZUAV{~8o$5yxmBoublTY1O zjbuh+hGXFFX+pLAfSVt4X*d{l7?H19u9NKRZ_GjKILR*S2tFBLI9rk8^&VEKbolZOA2=P^E}2bXa)*B|!Y% z2*WtB+$1LSqCGh7Kzi>rLG(Ha0+O}EY73PV5d-HDUM?2^rxsSAVXCSrCM-xsntmM& zvXRz<^Q2X=$uo{b##d0!5>{Gr@bRipWvjA$Lf?1Id(P~cU#uK?c^a)~M(b|opiFN& zn-XNZOB}f|8`X3YMc!pMd4z#x!XFDZfvpDMhy@!BT4y8+QldvtIT(9s{0zD#h|gvW zTcolC+;gy$d9#iM#d_B=o_DGHCE4i~Wa}J}O=}me9$H8XP+cD+kgI1Fvx70l|N7*q zg0%2_5j&$RBXR$8@XbZ%3ZaejtIzl6M4M%W+{@8T4~qDW&35&{E3<8XR=FS=B2b3(g-ut4xs5qnrh3BZO7Sf4t!D=_9g7$cTxYt7w>$8 z*fA$9FKFh4IET;agzuNiy5u1jdq2!^tokQhAQ&(qZ zET*jt3nsgx-xAEN#j5*uV}_HbU~)5txh;&g{Q@$gJx0wKzXKOPBVWfcJV3TFCsB>Y znkkV>b58iDcRe?IYJ6>WQRp($y8lkiNc`fC!^6(4oGmCzHxK_rl_vesiQ1^+fR8^& zWP=-z46&d!!(f(a8JJr-p`Id~1jOL?mxGv}hxX9Ow}FpyI)B41a{=@GmW!zf{zZ1G zg=SwnRk`z&M~-tTvhha^-U#AL3c!BZ_>aGa+DR+S zBjG6}#yoY1y+R1pSYRApo!YIbkbUTCx5R#VD;1Q=I+p>Nw$BlFW7BS(E11AWBscs; ze|^8Kq5Gd)cy6ti5ygH0jiRvYwk_8Ryvu)7v)Gv?c)wTtV1LZr{e@h3`SPnWI!QX? zb4{)`>iqnMi3S2HTz#EbL;O7!m+-4Qankj>zY_b;(n<&_ zs$L*fbY(EL{owDp;BN+GbD2VH1mM1`7pX#gSYwa3C(!4Sdfehg%*+aQIBUM(G(ug} z@OusK8uqyEX0zds!PMP-1N6VuBKIdj;oyrL^41Q?#8SCBVNw}P+k$UB zOsMqx$RL^>VL{HRh=9-e6(#!6eE%@pweA z8GhLt))ILB)`1HaiXzBT%`ExWxmosg_0!E27tdu}Gb-0FC#49PRA>5>`qj+4xzo?- zw_@);op#yOEy#kbazi##dOr^-Ofc#%98xotUvbK+moeV0D)s$4r(qXj^UjTPc69ZO z`|Tw6gsop@okIh-B_YY0j0H&YXsNG9{O#vhP?!~)!s&Ver6#t z_I>Cli_Q}?r?XAv`x}j`_lQm1$B5JF{5Vb(3F#)U?PWn{JUVvDja|r`(n&NwNsqcLa(mA`;>hgW^?N+&#{zioK90d2}@?? z%xj3;Iw)Raz6O;oQB!%n!}!YNxx+@9h=!z>is;1)8gI#xUK{(L{CE=ryEO~a1wcH? z-Z6gA;uvk|LJ=6NAJnpc9b^?Q>#G-V$H$kTn|zV)>cG*v#H3gHVUg2)8GZgarX;x-6YEvs{pjs!lz`qtK%K`c_qgo5^FGEPOQoym{Nkw} zZ-8L;rI10@gEIwX1e&I*M0Ucgj(f47{Vx54U^H&neQX;4gATlhd{qN<;89QWpI~Xa zu4qRb6}!isqZZB-V}t=^(ne6ob5r`XAF~F7saySwDb~OleRdVZ1Jpznj}l|v1=gXa z;_gnO2Wm%*2ASK;i+Eqb#^F@m;29Gnsgy7Wv^OJ8OWW}sUrSao&v5q&=EQ$ex%6fu zubqx-LRx&I%(fW4Ud}3PW)Dnshvzc1LR21BskQ*VLS+PyKlQs`PH#WC5*5cPxFnsamM`8rlwo@wi1mp;!l< zUD>q9ZtSwb`xlQ|x63(|-`%uNrnu_kj=3Y+)bYMpBiUJv48O}upxBKIq&C&j{r-`E zUEvB+-;|CvH79;;-IupH;nF4cuwHe(*C?wC$FfB$r0+^ciZPZQ8gR0+(l*@1qX3+! z>{^PCTt)ro|04junZLe0a$S4=p%Zezv@2&>LivA+iN^94iX=7Swl%443iWat-x&Q&=WWfyza!2o=e>2S+?!q00r>})* z%8Z_!3yKc1O9(H`^3{XhY`!H?+7*{%zY=}6DZa-@^xLqJD_R==)K7W4UtkdNv)j(1 znhd)x`Z2&9Jw6WnC5{K~YchkauI5V@0Qh3&L>z^kQIykJMCt%Plez7eBbfG{3@Wat z6xlN4jJN?uhQULW9ci_5D00pr#AfyIpRcB|a!le2y_9*Y78A*=!whhfFk_FgtIImf zK>z6?kcj`un;bcg=d?f8-rS?bbyeX-KF=OywopAi@v@fZG2zea+WoeUkS8l%iOlT} zX(AuVoKl>d6VA-O)Lb3=CWd=Goam?%FWz#=cbdH5mglB)B-MbP0vA;f8GF0N81v5& z#D5N{D0juW15}opYqNyO_50%xCOzFE;yZfkwh4ncdj&kT1@@)9CuD zAFVqamZiUjO9azk;s(OpcszX{`pFM7=M4C=J@bfNi@PB@f>yp@0 zt#?20+E+E{blZ0IF9ncP#n{X?^NBxKzc)htzV&eQll9%_=*AYpCtF?2T;m$#t{HV` zDeML_^4gp4r#^cgcJxgK*V4v_R{g2$XrnF`)Lu^fU9EhCpE_zl|2L}dKe3UDR>}S8 z1tHD->%xz)LrzLIG}5{oN8;r-&IaGx=%4gFerGE#Z{-+&F>UC;z8#;{;dcKy6V-#u zKv}AXYV~q};0gbrfd8FJd}%>3GS12hAGNjODNF2l#@4T|Uz0A^KPLKa>FC?CPH&I& z#Er+RJ8fx^w2QGWA1!v-s~NsH=(Ne|LGVJFx$4gM`@CMQswn$hInAckMRGODaW?vs zrvZxOr+Y2{9sUn+!~aB&|5sm^xjkc@1r&UFZF+VEG;Cc!dzEUFFn{uH;fskCeoN14Lz>(|v^ zMTahW^VM{zzVu9ydw$Ko;_#;1mz4krOWA#lH%&C_!cCV^#k5^gIxfBV>}xK{2N=thnz2|U16ZSAW*$K=5pVwI*Owh|dybsg>Bsa0FzHRy z2q3caTR~@Q9Mti1%WyfmUdW~2fx7c%5rDC8j(WW}Kvq$>VPXpfhp4&uU}?H4x<#!F zuip!V5DK8H_e5i9bAZ{5nqTVcuOuz25+B0fCt*MG=_0_NR`CuYMcT;2%th&bEz?psG66DeRP!>lLsl_U?=V*e@IR)ckeg%$xJ``y zuBhR-@FFK}D_Z~TuS5H|K`fP@jH0c=!}bw^$P7l^!$h7D09uL9d~8tjBt)G9)UK|G zJy!803o0OJ(9m!NyeR#n;!@dHl*#z|+h%?sI_2mx+@hQ%Oe#iP<|%!vxis9D;l4$Q zL}Y8b{Vb~D;VyQup56oFLKU}c-ol|Kva_OF6#|BnS%vM|T+C&53) zA=(Ri`k2jF>3a0(62hWf(vN21#GzsefGlXxPoEWAIy!m{y$#W5a;%&mrx6-wrzW(C zzrK%-TVgPRmWp9cU{*}2(_k74#x&9!)>Bg8ZbEVisUG(hOoSPg22=UrnGEZB0WEHf_8?52ajcuf>0y4)l89}#kQ>=jDXo1%lVQ8E!RfGr9*e0F|!rW)T5-~d4NZDS$JjnnI zgyR*Z8v!qqS&aY>(D5ypB++|77w;+4&zJC{s|sF!13-*EZq}c!FdbYa?seW{$b+&L3u$K%cSlC>LHbi^m+G?l;S(ab&U(vm!rA?Im|t1F$%#Ju#bQYC>F1x6O` zE7izKX4I+vm!0|8J|$c?)lp{c<%eTY7e9RuO#gIrNB#%tT%PzZhp$;1g396O!OYn} z(H-@s=f)#`TkFvu8<3U$*odgD?x9s&=>Ng94PY=^lQNvg#R8}uctm|8yZ<@IQ z%cA}*X9^rzItPW=?dE>)Ix6y_Zf^vq+(drKL61E_?(Zzp>-Vj3esc9dz=+`1jZH~9 z-*vRxP=74V=!YDG|1Hb-`?t2w)#hqL`D?PsaFlQNJ?r#FS7+Z84Ifby3CvNS_It12-&%1|>Am?x#f@eokv}Ae{UJf(f3to5{oe63GV*nX z%pvetz>QtEdZQ0~ND+N2-8D-X8+D*lZZLsVtug-&0seo2eAOJi~K&uY* zu?c&{yXu+X%SXaTK98R){s4v@?GOAA=o!NAN=;eG!bC=T8~QCu=W_hEQrjON`nB1@ z`{*yc)20v~z{(MPgYEUGum90AH-`)ks);Yv)Oh$hsfp>{GWimJ>XqQoHr$(z#PEIR zb(L(=+J)uf4{BKJPn=4s2qphX*+1RozfjrNGPIwqj=GCN6DTSW+ QE#Li`lK-oJv9mh=KQ4fgsQ>@~ literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta b/Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta new file mode 100644 index 00000000..f89b8407 --- /dev/null +++ b/Assets/Demigiant/DOTween/Editor/Imgs/Header.jpg.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 78a59ca99f8987941adb61f9e14a06a7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 512 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 512 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Modules.meta b/Assets/Demigiant/DOTween/Modules.meta new file mode 100644 index 00000000..d8843a29 --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 387e5c406348ab949bc84677ba4ec0f7 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs b/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs new file mode 100644 index 00000000..c342c027 --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs @@ -0,0 +1,195 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using UnityEngine; +#if UNITY_5 || UNITY_2017_1_OR_NEWER +using UnityEngine.Audio; // Required for AudioMixer +#endif + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleAudio + { + #region Shortcuts + + #region Audio + + /// Tweens an AudioSource's volume to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static Tweener DOFade(this AudioSource target, float endValue, float duration) + { + if (endValue < 0) endValue = 0; + else if (endValue > 1) endValue = 1; + return DOTween.To(() => target.volume, x => target.volume = x, endValue, duration).SetTarget(target); + } + + /// Tweens an AudioSource's pitch to the given value. + /// Also stores the AudioSource as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOPitch(this AudioSource target, float endValue, float duration) + { + return DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration).SetTarget(target); + } + + #endregion + +#if UNITY_5 || UNITY_2017_1_OR_NEWER + #region AudioMixer (Unity 5 or Newer) + + /// Tweens an AudioMixer's exposed float to the given value. + /// Also stores the AudioMixer as the tween's target so it can be used for filtered operations. + /// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer. + /// Name given to the exposed float to set + /// The end value to reachThe duration of the tween + public static Tweener DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration) + { + return DOTween.To(()=> { + float currVal; + target.GetFloat(floatName, out currVal); + return currVal; + }, x=> target.SetFloat(floatName, x), endValue, duration) + .SetTarget(target); + } + + #region Operation Shortcuts + + /// + /// Completes all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens completed + /// (meaning the tweens that don't have infinite loops and were not already complete) + /// + /// For Sequences only: if TRUE also internal Sequence callbacks will be fired, + /// otherwise they will be ignored + public static int DOComplete(this AudioMixer target, bool withCallbacks = false) + { + return DOTween.Complete(target, withCallbacks); + } + + /// + /// Kills all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens killed. + /// + /// If TRUE completes the tween before killing it + public static int DOKill(this AudioMixer target, bool complete = false) + { + return DOTween.Kill(target, complete); + } + + /// + /// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens flipped. + /// + public static int DOFlip(this AudioMixer target) + { + return DOTween.Flip(target); + } + + /// + /// Sends to the given position all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + /// Time position to reach + /// (if higher than the whole tween duration the tween will simply reach its end) + /// If TRUE will play the tween after reaching the given position, otherwise it will pause it + public static int DOGoto(this AudioMixer target, float to, bool andPlay = false) + { + return DOTween.Goto(target, to, andPlay); + } + + /// + /// Pauses all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens paused. + /// + public static int DOPause(this AudioMixer target) + { + return DOTween.Pause(target); + } + + /// + /// Plays all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlay(this AudioMixer target) + { + return DOTween.Play(target); + } + + /// + /// Plays backwards all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayBackwards(this AudioMixer target) + { + return DOTween.PlayBackwards(target); + } + + /// + /// Plays forward all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens played. + /// + public static int DOPlayForward(this AudioMixer target) + { + return DOTween.PlayForward(target); + } + + /// + /// Restarts all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens restarted. + /// + public static int DORestart(this AudioMixer target) + { + return DOTween.Restart(target); + } + + /// + /// Rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DORewind(this AudioMixer target) + { + return DOTween.Rewind(target); + } + + /// + /// Smoothly rewinds all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens rewinded. + /// + public static int DOSmoothRewind(this AudioMixer target) + { + return DOTween.SmoothRewind(target); + } + + /// + /// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference + /// (meaning tweens that were started from this target, or that had this target added as an Id) + /// and returns the total number of tweens involved. + /// + public static int DOTogglePause(this AudioMixer target) + { + return DOTween.TogglePause(target); + } + + #endregion + + #endregion +#endif + + #endregion + } +} +#endif diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta b/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta new file mode 100644 index 00000000..55682176 --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModuleAudio.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b766d08851589514b97afb23c6f30a70 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs b/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs new file mode 100644 index 00000000..2a85cc6b --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs @@ -0,0 +1,212 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true // MODULE_MARKER +using System; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; +using DG.Tweening.Plugins; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModulePhysics + { + #region Shortcuts + + #region Rigidbody + + /// Tweens a Rigidbody's position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.position, target.MovePosition, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + /// Tweens a Rigidbody's X position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetTarget(target); + } + + /// Tweens a Rigidbody's Y position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration) + .SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + } + + /// Tweens a Rigidbody's Z position to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration) + .SetOptions(AxisConstraint.Z, snapping).SetTarget(target); + } + + /// Tweens a Rigidbody's rotation to the given value. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// Rotation mode + public static Tweener DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration); + t.SetTarget(target); + t.plugOptions.rotateMode = mode; + return t; + } + + /// Tweens a Rigidbody's rotation so that it will look towards the given position. + /// Also stores the rigidbody as the tween's target so it can be used for filtered operations + /// The position to look atThe duration of the tween + /// Eventual axis constraint for the rotation + /// The vector that defines in which direction up is (default: Vector3.up) + public static Tweener DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null) + { + TweenerCore t = DOTween.To(() => target.rotation, target.MoveRotation, towards, duration) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetLookAt); + t.plugOptions.axisConstraint = axisConstraint; + t.plugOptions.up = (up == null) ? Vector3.up : (Vector3)up; + return t; + } + + #region Special + + /// Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(() => startPosY = target.position.y); + s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration) + .SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + yTween.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector3 pos = target.position; + pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); + target.MovePosition(pos); + }); + return s; + } + + /// Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations. + /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOPath. + /// The waypoints to go through + /// The duration of the tween + /// The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOPath( + this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, new Path(pathType, path, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + return t; + } + /// Tweens a Rigidbody's localPosition through the given path waypoints, using the chosen path algorithm. + /// Also stores the Rigidbody as the tween's target so it can be used for filtered operations + /// NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened. + /// BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug). + /// If you plan to publish there you should use a regular transform.DOLocalPath. + /// The waypoint to go through + /// The duration of the tween + /// The type of path: Linear (straight path) or CatmullRom (curved CatmullRom path) + /// The path mode: 3D, side-scroller 2D, top-down 2D + /// The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive. + /// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints + /// The color of the path (shown when gizmos are active in the Play panel and the tween is running) + public static TweenerCore DOLocalPath( + this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear, + PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null + ) + { + if (resolution < 1) resolution = 1; + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path, resolution, gizmoColor), duration) + .SetTarget(target).SetUpdate(UpdateType.Fixed); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + // Used by path editor when creating the actual tween, so it can pass a pre-compiled path + internal static TweenerCore DOPath( + this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + TweenerCore t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + return t; + } + internal static TweenerCore DOLocalPath( + this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D + ) + { + Transform trans = target.transform; + TweenerCore t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration) + .SetTarget(target); + + t.plugOptions.isRigidbody = true; + t.plugOptions.mode = pathMode; + t.plugOptions.useLocalPosition = true; + return t; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta b/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta new file mode 100644 index 00000000..42a05668 --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dae9aa560b4242648a3affa2bfabc365 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs b/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs new file mode 100644 index 00000000..f4e2aa29 --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs @@ -0,0 +1,101 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER +using System; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModulePhysics2D + { + #region Shortcuts + + #region Rigidbody2D Shortcuts + + /// Tweens a Rigidbody2D's position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.position, target.MovePosition, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + /// Tweens a Rigidbody2D's X position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetTarget(target); + } + + /// Tweens a Rigidbody2D's Y position to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration) + .SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + } + + /// Tweens a Rigidbody2D's rotation to the given value. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DORotate(this Rigidbody2D target, float endValue, float duration) + { + return DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration) + .SetTarget(target); + } + + #region Special + + /// Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations. + /// IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(() => startPosY = target.position.y); + s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + yTween.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector3 pos = target.position; + pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad); + target.MovePosition(pos); + }); + return s; + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta b/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta new file mode 100644 index 00000000..323d0ddf --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModulePhysics2D.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 230fe34542e175245ba74b4659dae700 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs b/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs new file mode 100644 index 00000000..12e07aad --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs @@ -0,0 +1,88 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER +using System; +using UnityEngine; +using DG.Tweening.Core; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleSprite + { + #region Shortcuts + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOColor(this SpriteRenderer target, Color endValue, float duration) + { + return DOTween.To(() => target.color, x => target.color = x, endValue, duration).SetTarget(target); + } + + /// Tweens a Material's alpha color to the given value. + /// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFade(this SpriteRenderer target, float endValue, float duration) + { + return DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a SpriteRenderer's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + return s; + } + + #endregion + + #region Blendables + + #region SpriteRenderer + + /// Tweens a SpriteRenderer's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #endregion + } +} +#endif diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta b/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta new file mode 100644 index 00000000..e6ade0cb --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModuleSprite.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 188918ab119d93148aa0de59ccf5286b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs new file mode 100644 index 00000000..df2b42cf --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs @@ -0,0 +1,570 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +#if true && (UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER) // MODULE_MARKER +using System; +using UnityEngine; +using UnityEngine.UI; +using DG.Tweening.Core; +using DG.Tweening.Core.Enums; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenModuleUI + { + #region Shortcuts + + #region CanvasGroup + + /// Tweens a CanvasGroup's alpha color to the given value. + /// Also stores the canvasGroup as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFade(this CanvasGroup target, float endValue, float duration) + { + return DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration) + .SetTarget(target); + } + + #endregion + + #region Graphic + + /// Tweens an Graphic's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOColor(this Graphic target, Color endValue, float duration) + { + return DOTween.To(() => target.color, x => target.color = x, endValue, duration).SetTarget(target); + } + + /// Tweens an Graphic's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFade(this Graphic target, float endValue, float duration) + { + return DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration) + .SetTarget(target); + } + + #endregion + + #region Image + + /// Tweens an Image's color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOColor(this Image target, Color endValue, float duration) + { + return DOTween.To(() => target.color, x => target.color = x, endValue, duration).SetTarget(target); + } + + /// Tweens an Image's alpha color to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFade(this Image target, float endValue, float duration) + { + return DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens an Image's fillAmount to the given value. + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The end value to reach (0 to 1)The duration of the tween + public static Tweener DOFillAmount(this Image target, float endValue, float duration) + { + if (endValue > 1) endValue = 1; + else if (endValue < 0) endValue = 0; + return DOTween.To(() => target.fillAmount, x => target.fillAmount = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens an Image's colors using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Image target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + return s; + } + + #endregion + + #region LayoutElement + + /// Tweens an LayoutElement's flexibleWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x => { + target.flexibleWidth = x.x; + target.flexibleHeight = x.y; + }, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + /// Tweens an LayoutElement's minWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x => { + target.minWidth = x.x; + target.minHeight = x.y; + }, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + /// Tweens an LayoutElement's preferredWidth/Height to the given value. + /// Also stores the LayoutElement as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x => { + target.preferredWidth = x.x; + target.preferredHeight = x.y; + }, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + #endregion + + #region Outline + + /// Tweens a Outline's effectColor to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOColor(this Outline target, Color endValue, float duration) + { + return DOTween.To(() => target.effectColor, x => target.effectColor = x, endValue, duration).SetTarget(target); + } + + /// Tweens a Outline's effectColor alpha to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFade(this Outline target, float endValue, float duration) + { + return DOTween.ToAlpha(() => target.effectColor, x => target.effectColor = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a Outline's effectDistance to the given value. + /// Also stores the Outline as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScale(this Outline target, Vector2 endValue, float duration) + { + return DOTween.To(() => target.effectDistance, x => target.effectDistance = x, endValue, duration) + .SetTarget(target); + } + + #endregion + + #region RectTransform + + /// Tweens a RectTransform's anchoredPosition to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOAnchorPos(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a RectTransform's anchoredPosition X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOAnchorPosX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetTarget(target); + } + /// Tweens a RectTransform's anchoredPosition Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOAnchorPosY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, endValue), duration) + .SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + } + + /// Tweens a RectTransform's anchoredPosition3D to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOAnchorPos3D(this RectTransform target, Vector3 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a RectTransform's anchoredPosition3D X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOAnchorPos3DX(this RectTransform target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(endValue, 0, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetTarget(target); + } + /// Tweens a RectTransform's anchoredPosition3D Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOAnchorPos3DY(this RectTransform target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, endValue, 0), duration) + .SetOptions(AxisConstraint.Y, snapping).SetTarget(target); + } + /// Tweens a RectTransform's anchoredPosition3D Z to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOAnchorPos3DZ(this RectTransform target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, 0, endValue), duration) + .SetOptions(AxisConstraint.Z, snapping).SetTarget(target); + } + + /// Tweens a RectTransform's anchorMax to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOAnchorMax(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.anchorMax, x => target.anchorMax = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + /// Tweens a RectTransform's anchorMin to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOAnchorMin(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.anchorMin, x => target.anchorMin = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + /// Tweens a RectTransform's pivot to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOPivot(this RectTransform target, Vector2 endValue, float duration) + { + return DOTween.To(() => target.pivot, x => target.pivot = x, endValue, duration) + .SetTarget(target); + } + /// Tweens a RectTransform's pivot X to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOPivotX(this RectTransform target, float endValue, float duration) + { + return DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(endValue, 0), duration) + .SetOptions(AxisConstraint.X).SetTarget(target); + } + /// Tweens a RectTransform's pivot Y to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOPivotY(this RectTransform target, float endValue, float duration) + { + return DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(0, endValue), duration) + .SetOptions(AxisConstraint.Y).SetTarget(target); + } + + /// Tweens a RectTransform's sizeDelta to the given value. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOSizeDelta(this RectTransform target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.sizeDelta, x => target.sizeDelta = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + /// Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one + /// as if it was connected to the starting position via an elastic. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The direction and strength of the punch (added to the RectTransform's current position) + /// The duration of the tween + /// Indicates how much will the punch vibrate + /// Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards. + /// 1 creates a full oscillation between the punch direction and the opposite direction, + /// while 0 oscillates only between the punch and the start position + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOPunchAnchorPos(this RectTransform target, Vector2 punch, float duration, int vibrato = 10, float elasticity = 1, bool snapping = false) + { + return DOTween.Punch(() => target.anchoredPosition, x => target.anchoredPosition = x, punch, duration, vibrato, elasticity) + .SetTarget(target).SetOptions(snapping); + } + + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + /// Shakes a RectTransform's anchoredPosition with the given values. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The shake strength on each axis + /// Indicates how much will the shake vibrate + /// Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware). + /// Setting it to 0 will shake along a single direction. + /// If TRUE the tween will smoothly snap all values to integers + /// If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not + public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true) + { + return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut) + .SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping); + } + + #region Special + + /// Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis. + /// Returns a Sequence instead of a Tweener. + /// Also stores the RectTransform as the tween's target so it can be used for filtered operations + /// The end value to reach + /// Power of the jump (the max height of the jump is represented by this plus the final Y offset) + /// Total number of jumps + /// The duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Sequence DOJumpAnchorPos(this RectTransform target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false) + { + if (numJumps < 1) numJumps = 1; + float startPosY = 0; + float offsetY = -1; + bool offsetYSet = false; + + // Separate Y Tween so we can elaborate elapsedPercentage on that insted of on the Sequence + // (in case users add a delay or other elements to the Sequence) + Sequence s = DOTween.Sequence(); + Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2)) + .SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative() + .SetLoops(numJumps * 2, LoopType.Yoyo) + .OnStart(()=> startPosY = target.anchoredPosition.y); + s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration) + .SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear) + ).Join(yTween) + .SetTarget(target).SetEase(DOTween.defaultEaseType); + s.OnUpdate(() => { + if (!offsetYSet) { + offsetYSet = true; + offsetY = s.isRelative ? endValue.y : endValue.y - startPosY; + } + Vector2 pos = target.anchoredPosition; + pos.y += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad); + target.anchoredPosition = pos; + }); + return s; + } + + #endregion + + #endregion + + #region ScrollRect + + /// Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false) + { + return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition), + x => { + target.horizontalNormalizedPosition = x.x; + target.verticalNormalizedPosition = x.y; + }, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's horizontalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOHorizontalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.horizontalNormalizedPosition, x => target.horizontalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + /// Tweens a ScrollRect's verticalNormalizedPosition to the given value. + /// Also stores the ScrollRect as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOVerticalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.verticalNormalizedPosition, x => target.verticalNormalizedPosition = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + #endregion + + #region Slider + + /// Tweens a Slider's value to the given value. + /// Also stores the Slider as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOValue(this Slider target, float endValue, float duration, bool snapping = false) + { + return DOTween.To(() => target.value, x => target.value = x, endValue, duration) + .SetOptions(snapping).SetTarget(target); + } + + #endregion + + #region Text + + /// Tweens a Text's color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOColor(this Text target, Color endValue, float duration) + { + return DOTween.To(() => target.color, x => target.color = x, endValue, duration).SetTarget(target); + } + + /// Tweens a Text's alpha color to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFade(this Text target, float endValue, float duration) + { + return DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a Text's text to the given value. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The end string to tween toThe duration of the tween + /// If TRUE (default), rich text will be interpreted correctly while animated, + /// otherwise all tags will be considered as normal text + /// The type of scramble mode to use, if any + /// A string containing the characters to use for scrambling. + /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + /// Leave it to NULL (default) to use default ones + public static Tweener DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null) + { + return DOTween.To(() => target.text, x => target.text = x, endValue, duration) + .SetOptions(richTextEnabled, scrambleMode, scrambleChars) + .SetTarget(target); + } + + #endregion + + #region Blendables + + #region Graphic + + /// Tweens a Graphic's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Graphic as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Graphic target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Image + + /// Tweens a Image's color to the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Image as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Image target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #region Text + + /// Tweens a Text's color BY the given value, + /// in a way that allows other DOBlendableColor tweens to work together on the same target, + /// instead than fight each other as multiple DOColor would do. + /// Also stores the Text as the tween's target so it can be used for filtered operations + /// The value to tween toThe duration of the tween + public static Tweener DOBlendableColor(this Text target, Color endValue, float duration) + { + endValue = endValue - target.color; + Color to = new Color(0, 0, 0, 0); + return DOTween.To(() => to, x => { + Color diff = x - to; + to = x; + target.color += diff; + }, endValue, duration) + .Blendable().SetTarget(target); + } + + #endregion + + #endregion + + #endregion + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class Utils + { + /// + /// Converts the anchoredPosition of the first RectTransform to the second RectTransform, + /// taking into consideration offset, anchors and pivot, and returns the new anchoredPosition + /// + public static Vector2 SwitchToRectTransform(RectTransform from, RectTransform to) + { + Vector2 localPoint; + Vector2 fromPivotDerivedOffset = new Vector2(from.rect.width * 0.5f + from.rect.xMin, from.rect.height * 0.5f + from.rect.yMin); + Vector2 screenP = RectTransformUtility.WorldToScreenPoint(null, from.position); + screenP += fromPivotDerivedOffset; + RectTransformUtility.ScreenPointToLocalPointInRectangle(to, screenP, null, out localPoint); + Vector2 pivotDerivedOffset = new Vector2(to.rect.width * 0.5f + to.rect.xMin, to.rect.height * 0.5f + to.rect.yMin); + return to.anchoredPosition + localPoint - pivotDerivedOffset; + } + } + } +} +#endif diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta new file mode 100644 index 00000000..b7f95cb3 --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a060394c03331a64392db53a10e7f2d1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs new file mode 100644 index 00000000..26c4a691 --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs @@ -0,0 +1,252 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using System; +using UnityEngine; +using DG.Tweening.Core; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + /// + /// Shortcuts/functions that are not strictly related to specific Modules + /// but are available only on some Unity versions + /// + public static class DOTweenModuleUnityVersion + { +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1_OR_NEWER + #region Unity 4.3 or Newer + + #region Material + + /// Tweens a Material's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + return s; + } + /// Tweens a Material's named color property using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to use + /// The name of the material property to tween (like _Tint or _SpecColor) + /// The duration of the tween + public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.SetColor(property, c.color); + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear)); + } + return s; + } + + #endregion + + #endregion +#endif + +#if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER + #region CustomYieldInstructions (Unity 5.3 or Newer) + + /// + /// Returns a that waits until the tween is killed or complete. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForCompletion(true); + /// + public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForCompletion(t); + } + + /// + /// Returns a that waits until the tween is killed or rewinded. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForRewind(); + /// + public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForRewind(t); + } + + /// + /// Returns a that waits until the tween is killed. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForKill(); + /// + public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForKill(t); + } + + /// + /// Returns a that waits until the tween is killed or has gone through the given amount of loops. + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForElapsedLoops(2); + /// + /// Elapsed loops to wait for + public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForElapsedLoops(t, elapsedLoops); + } + + /// + /// Returns a that waits until the tween is killed or has reached the given position (loops included, delays excluded). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForPosition(2.5f); + /// + /// Position (loops included, delays excluded) to wait for + public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForPosition(t, position); + } + + /// + /// Returns a that waits until the tween is killed or started + /// (meaning when the tween is set in a playing state the first time, after any eventual delay). + /// It can be used inside a coroutine as a yield. + /// Example usage:yield return myTween.WaitForStart(); + /// + public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction) + { + if (!t.active) { + if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t); + return null; + } + return new DOTweenCYInstruction.WaitForStart(t); + } + + #endregion +#endif + } + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + +#if UNITY_5_3_OR_NEWER || UNITY_2017_1_OR_NEWER + public static class DOTweenCYInstruction + { + public class WaitForCompletion : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.IsComplete(); + }} + readonly Tween t; + public WaitForCompletion(Tween tween) + { + t = tween; + } + } + + public class WaitForRewind : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0); + }} + readonly Tween t; + public WaitForRewind(Tween tween) + { + t = tween; + } + } + + public class WaitForKill : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active; + }} + readonly Tween t; + public WaitForKill(Tween tween) + { + t = tween; + } + } + + public class WaitForElapsedLoops : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.CompletedLoops() < elapsedLoops; + }} + readonly Tween t; + readonly int elapsedLoops; + public WaitForElapsedLoops(Tween tween, int elapsedLoops) + { + t = tween; + this.elapsedLoops = elapsedLoops; + } + } + + public class WaitForPosition : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && t.position * (t.CompletedLoops() + 1) < position; + }} + readonly Tween t; + readonly float position; + public WaitForPosition(Tween tween, float position) + { + t = tween; + this.position = position; + } + } + + public class WaitForStart : CustomYieldInstruction + { + public override bool keepWaiting { get { + return t.active && !t.playedOnce; + }} + readonly Tween t; + public WaitForStart(Tween tween) + { + t = tween; + } + } + } +#endif +} diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta new file mode 100644 index 00000000..6256c54b --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 63c02322328255542995bd02b47b0457 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs new file mode 100644 index 00000000..acc91245 --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs @@ -0,0 +1,128 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using UnityEngine; +using DG.Tweening.Core; +using DG.Tweening.Plugins.Core.PathCore; +using DG.Tweening.Plugins.Options; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + /// + /// Utility functions that deal with available Modules. + /// Modules defines: + /// - DOTAUDIO + /// - DOTPHYSICS + /// - DOTPHYSICS2D + /// - DOTSPRITE + /// - DOTUI + /// Extra defines set and used for implementation of external assets: + /// - DOTWEEN_TMP ► TextMesh Pro + /// - DOTWEEN_TK2D ► 2D Toolkit + /// + public static class DOTweenModuleUtils + { + static bool _initialized; + + /// + /// Called via Reflection by DOTweenComponent on Awake + /// + public static void Init() + { + if (_initialized) return; + + _initialized = true; + DOTweenExternalCommand.SetOrientationOnPath += Physics.SetOrientationOnPath; + +#if UNITY_EDITOR +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 + UnityEditor.EditorApplication.playmodeStateChanged += PlaymodeStateChanged; +#else + UnityEditor.EditorApplication.playModeStateChanged += PlaymodeStateChanged; +#endif +#endif + } + +#if UNITY_EDITOR + // Fires OnApplicationPause in DOTweenComponent even when Editor is paused (otherwise it's only fired at runtime) +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 + static void PlaymodeStateChanged() + #else + static void PlaymodeStateChanged(UnityEditor.PlayModeStateChange state) +#endif + { + if (DOTween.instance == null) return; + DOTween.instance.OnApplicationPause(UnityEditor.EditorApplication.isPaused); + } +#endif + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + public static class Physics + { + // Called via DOTweenExternalCommand callback + public static void SetOrientationOnPath(PathOptions options, Tween t, Quaternion newRot, Transform trans) + { +#if true // PHYSICS_MARKER + if (options.isRigidbody) ((Rigidbody)t.target).rotation = newRot; + else trans.rotation = newRot; +#else + trans.rotation = newRot; +#endif + } + + // Returns FALSE if the DOTween's Physics2D Module is disabled, or if there's no Rigidbody2D attached + public static bool HasRigidbody2D(Component target) + { +#if true // PHYSICS2D_MARKER + return target.GetComponent() != null; +#else + return false; +#endif + } + + #region Called via Reflection + + + // Called via Reflection by DOTweenPathInspector + // Returns FALSE if the DOTween's Physics Module is disabled, or if there's no rigidbody attached + public static bool HasRigidbody(Component target) + { +#if true // PHYSICS_MARKER + return target.GetComponent() != null; +#else + return false; +#endif + } + + // Called via Reflection by DOTweenPath + public static TweenerCore CreateDOTweenPathTween( + MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode + ){ + TweenerCore t; +#if true // PHYSICS_MARKER + Rigidbody rBody = tweenRigidbody ? target.GetComponent() : null; + if (tweenRigidbody && rBody != null) { + t = isLocal + ? rBody.DOLocalPath(path, duration, pathMode) + : rBody.DOPath(path, duration, pathMode); + } else { + t = isLocal + ? target.transform.DOLocalPath(path, duration, pathMode) + : target.transform.DOPath(path, duration, pathMode); + } +#else + t = isLocal + ? target.transform.DOLocalPath(path, duration, pathMode) + : target.transform.DOPath(path, duration, pathMode); +#endif + return t; + } + + #endregion + } + } +} diff --git a/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta new file mode 100644 index 00000000..9164e1ec --- /dev/null +++ b/Assets/Demigiant/DOTween/Modules/DOTweenModuleUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7bcaf917d9cf5b84090421a5a2abe42e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTween/readme.txt b/Assets/Demigiant/DOTween/readme.txt new file mode 100644 index 00000000..37ff7ef5 --- /dev/null +++ b/Assets/Demigiant/DOTween/readme.txt @@ -0,0 +1,29 @@ +DOTween and DOTween Pro are copyright (c) 2014-2018 Daniele Giardini - Demigiant + +// IMPORTANT!!! ///////////////////////////////////////////// +// Upgrading DOTween from versions older than 1.2.000 /////// +// (or DOTween Pro older than 1.0.000) ////////////////////// +------------------------------------------------------------- +If you're upgrading your project from a version of DOTween older than 1.2.000 (or DOTween Pro older than 1.0.000) please follow these instructions carefully. +1) Import the new version in the same folder as the previous one, overwriting old files. A lot of errors will appear but don't worry +2) Close and reopen Unity (and your project). This is fundamental: skipping this step will cause a bloodbath +3) Open DOTween's Utility Panel (Tools > Demigiant > DOTween Utility Panel) if it doesn't open automatically, then press "Setup DOTween...": this will run the upgrade setup +4) From the Add/Remove Modules panel that opens, activate/deactivate Modules for Unity systems and for external assets (Pro version only) + +// GET STARTED ////////////////////////////////////////////// + +- After importing a new DOTween update, select DOTween's Utility Panel from the "Tools/Demigiant" menu (if it doesn't open automatically) and press the "Setup DOTween..." button to activate/deactivate Modules. You can also access a Preferences Tab from there to choose default settings for DOTween. +- In your code, add "using DG.Tweening" to each class where you want to use DOTween. +- You're ready to tween. Check out the links below for full documentation and license info. + + +// LINKS /////////////////////////////////////////////////////// + +DOTween website (documentation, examples, etc): http://dotween.demigiant.com +DOTween license: http://dotween.demigiant.com/license.php +DOTween repository (Google Code): https://code.google.com/p/dotween/ +Demigiant website (documentation, examples, etc): http://www.demigiant.com + +// NOTES ////////////////////////////////////////////////////// + +- DOTween's Utility Panel can be found under "Tools > Demigiant > DOTween Utility Panel" and also contains other useful options, plus a tab to set DOTween's preferences \ No newline at end of file diff --git a/Assets/Demigiant/DOTween/readme.txt.meta b/Assets/Demigiant/DOTween/readme.txt.meta new file mode 100644 index 00000000..9c3a968a --- /dev/null +++ b/Assets/Demigiant/DOTween/readme.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: fccfc62abf2eb0a4db614853430894fd +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro.meta b/Assets/Demigiant/DOTweenPro.meta new file mode 100644 index 00000000..435a9731 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 27b8a490839361c48afe8bfc65d346c1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs b/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs new file mode 100644 index 00000000..cc6d6f06 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs @@ -0,0 +1,662 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2015/03/12 15:55 + +using System; +using System.Collections.Generic; +using DG.Tweening.Core; +using UnityEngine; +#if true // UI_MARKER +using UnityEngine.UI; +#endif +#if false // TEXTMESHPRO_MARKER +using TMPro; +#endif + +#pragma warning disable 1591 +namespace DG.Tweening +{ + /// + /// Attach this to a GameObject to create a tween + /// + [AddComponentMenu("DOTween/DOTween Animation")] + public class DOTweenAnimation : ABSAnimationComponent + { + public bool targetIsSelf = true; // If FALSE allows to set the target manually + public GameObject targetGO = null; // Used in case targetIsSelf is FALSE + // If TRUE always uses the GO containing this DOTweenAnimation (and not the one containing the target) as DOTween's SetTarget target + public bool tweenTargetIsTargetGO = true; + + public float delay; + public float duration = 1; + public Ease easeType = Ease.OutQuad; + public AnimationCurve easeCurve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(1, 1)); + public LoopType loopType = LoopType.Restart; + public int loops = 1; + public string id = ""; + public bool isRelative; + public bool isFrom; + public bool isIndependentUpdate = false; + public bool autoKill = true; + + public bool isActive = true; + public bool isValid; + public Component target; + public DOTweenAnimationType animationType; + public TargetType targetType; + public TargetType forcedTargetType; // Used when choosing between multiple targets + public bool autoPlay = true; + public bool useTargetAsV3; + + public float endValueFloat; + public Vector3 endValueV3; + public Vector2 endValueV2; + public Color endValueColor = new Color(1, 1, 1, 1); + public string endValueString = ""; + public Rect endValueRect = new Rect(0, 0, 0, 0); + public Transform endValueTransform; + + public bool optionalBool0; + public float optionalFloat0; + public int optionalInt0; + public RotateMode optionalRotationMode = RotateMode.Fast; + public ScrambleMode optionalScrambleMode = ScrambleMode.None; + public string optionalString; + + bool _tweenCreated; // TRUE after the tweens have been created + int _playCount = -1; // Used when calling DOPlayNext + + #region Unity Methods + + void Awake() + { + if (!isActive || !isValid) return; + + if (animationType != DOTweenAnimationType.Move || !useTargetAsV3) { + // Don't create tweens if we're using a RectTransform as a Move target, + // because that will work only inside Start + CreateTween(); + _tweenCreated = true; + } + } + + void Start() + { + if (_tweenCreated || !isActive || !isValid) return; + + CreateTween(); + _tweenCreated = true; + } + + void OnDestroy() + { + if (tween != null && tween.IsActive()) tween.Kill(); + tween = null; + } + + // Used also by DOTweenAnimationInspector when applying runtime changes and restarting + public void CreateTween() + { +// if (target == null) { +// Debug.LogWarning(string.Format("{0} :: This DOTweenAnimation's target is NULL, because the animation was created with a DOTween Pro version older than 0.9.255. To fix this, exit Play mode then simply select this object, and it will update automatically", this.gameObject.name), this.gameObject); +// return; +// } + + GameObject tweenGO = GetTweenGO(); + if (target == null || tweenGO == null) { + if (targetIsSelf && target == null) { + // Old error caused during upgrade from DOTween Pro 0.9.255 + Debug.LogWarning(string.Format("{0} :: This DOTweenAnimation's target is NULL, because the animation was created with a DOTween Pro version older than 0.9.255. To fix this, exit Play mode then simply select this object, and it will update automatically", this.gameObject.name), this.gameObject); + } else { + // Missing non-self target + Debug.LogWarning(string.Format("{0} :: This DOTweenAnimation's target/GameObject is unset: the tween will not be created.", this.gameObject.name), this.gameObject); + } + return; + } + + if (forcedTargetType != TargetType.Unset) targetType = forcedTargetType; + if (targetType == TargetType.Unset) { + // Legacy DOTweenAnimation (made with a version older than 0.9.450) without stored targetType > assign it now + targetType = TypeToDOTargetType(target.GetType()); + } + + switch (animationType) { + case DOTweenAnimationType.None: + break; + case DOTweenAnimationType.Move: + if (useTargetAsV3) { + isRelative = false; + if (endValueTransform == null) { + Debug.LogWarning(string.Format("{0} :: This tween's TO target is NULL, a Vector3 of (0,0,0) will be used instead", this.gameObject.name), this.gameObject); + endValueV3 = Vector3.zero; + } else { +#if true // UI_MARKER + if (targetType == TargetType.RectTransform) { + RectTransform endValueT = endValueTransform as RectTransform; + if (endValueT == null) { + Debug.LogWarning(string.Format("{0} :: This tween's TO target should be a RectTransform, a Vector3 of (0,0,0) will be used instead", this.gameObject.name), this.gameObject); + endValueV3 = Vector3.zero; + } else { + RectTransform rTarget = target as RectTransform; + if (rTarget == null) { + Debug.LogWarning(string.Format("{0} :: This tween's target and TO target are not of the same type. Please reassign the values", this.gameObject.name), this.gameObject); + } else { + // Problem: doesn't work inside Awake (ararargh!) + endValueV3 = DOTweenModuleUI.Utils.SwitchToRectTransform(endValueT, rTarget); + } + } + } else +#endif + endValueV3 = endValueTransform.position; + } + } + switch (targetType) { + case TargetType.Transform: + tween = ((Transform)target).DOMove(endValueV3, duration, optionalBool0); + break; + case TargetType.RectTransform: +#if true // UI_MARKER + tween = ((RectTransform)target).DOAnchorPos3D(endValueV3, duration, optionalBool0); +#else + tween = ((Transform)target).DOMove(endValueV3, duration, optionalBool0); +#endif + break; + case TargetType.Rigidbody: +#if true // PHYSICS_MARKER + tween = ((Rigidbody)target).DOMove(endValueV3, duration, optionalBool0); +#else + tween = ((Transform)target).DOMove(endValueV3, duration, optionalBool0); +#endif + break; + case TargetType.Rigidbody2D: +#if true // PHYSICS2D_MARKER + tween = ((Rigidbody2D)target).DOMove(endValueV3, duration, optionalBool0); +#else + tween = ((Transform)target).DOMove(endValueV3, duration, optionalBool0); +#endif + break; + } + break; + case DOTweenAnimationType.LocalMove: + tween = tweenGO.transform.DOLocalMove(endValueV3, duration, optionalBool0); + break; + case DOTweenAnimationType.Rotate: + switch (targetType) { + case TargetType.Transform: + tween = ((Transform)target).DORotate(endValueV3, duration, optionalRotationMode); + break; + case TargetType.Rigidbody: +#if true // PHYSICS_MARKER + tween = ((Rigidbody)target).DORotate(endValueV3, duration, optionalRotationMode); +#else + tween = ((Transform)target).DORotate(endValueV3, duration, optionalRotationMode); +#endif + break; + case TargetType.Rigidbody2D: +#if true // PHYSICS2D_MARKER + tween = ((Rigidbody2D)target).DORotate(endValueFloat, duration); +#else + tween = ((Transform)target).DORotate(endValueV3, duration, optionalRotationMode); +#endif + break; + } + break; + case DOTweenAnimationType.LocalRotate: + tween = tweenGO.transform.DOLocalRotate(endValueV3, duration, optionalRotationMode); + break; + case DOTweenAnimationType.Scale: + switch (targetType) { +#if false // TK2D_MARKER + case TargetType.tk2dTextMesh: + tween = ((tk2dTextMesh)target).DOScale(optionalBool0 ? new Vector3(endValueFloat, endValueFloat, endValueFloat) : endValueV3, duration); + break; + case TargetType.tk2dBaseSprite: + tween = ((tk2dBaseSprite)target).DOScale(optionalBool0 ? new Vector3(endValueFloat, endValueFloat, endValueFloat) : endValueV3, duration); + break; +#endif + default: + tween = tweenGO.transform.DOScale(optionalBool0 ? new Vector3(endValueFloat, endValueFloat, endValueFloat) : endValueV3, duration); + break; + } + break; +#if true // UI_MARKER + case DOTweenAnimationType.UIWidthHeight: + tween = ((RectTransform)target).DOSizeDelta(optionalBool0 ? new Vector2(endValueFloat, endValueFloat) : endValueV2, duration); + break; +#endif + case DOTweenAnimationType.Color: + isRelative = false; + switch (targetType) { + case TargetType.Renderer: + tween = ((Renderer)target).material.DOColor(endValueColor, duration); + break; + case TargetType.Light: + tween = ((Light)target).DOColor(endValueColor, duration); + break; +#if true // SPRITE_MARKER + case TargetType.SpriteRenderer: + tween = ((SpriteRenderer)target).DOColor(endValueColor, duration); + break; +#endif +#if true // UI_MARKER + case TargetType.Image: + tween = ((Image)target).DOColor(endValueColor, duration); + break; + case TargetType.Text: + tween = ((Text)target).DOColor(endValueColor, duration); + break; +#endif +#if false // TK2D_MARKER + case TargetType.tk2dTextMesh: + tween = ((tk2dTextMesh)target).DOColor(endValueColor, duration); + break; + case TargetType.tk2dBaseSprite: + tween = ((tk2dBaseSprite)target).DOColor(endValueColor, duration); + break; +#endif +#if false // TEXTMESHPRO_MARKER + case TargetType.TextMeshProUGUI: + tween = ((TextMeshProUGUI)target).DOColor(endValueColor, duration); + break; + case TargetType.TextMeshPro: + tween = ((TextMeshPro)target).DOColor(endValueColor, duration); + break; +#endif + } + break; + case DOTweenAnimationType.Fade: + isRelative = false; + switch (targetType) { + case TargetType.Renderer: + tween = ((Renderer)target).material.DOFade(endValueFloat, duration); + break; + case TargetType.Light: + tween = ((Light)target).DOIntensity(endValueFloat, duration); + break; +#if true // SPRITE_MARKER + case TargetType.SpriteRenderer: + tween = ((SpriteRenderer)target).DOFade(endValueFloat, duration); + break; +#endif +#if true // UI_MARKER + case TargetType.Image: + tween = ((Image)target).DOFade(endValueFloat, duration); + break; + case TargetType.Text: + tween = ((Text)target).DOFade(endValueFloat, duration); + break; + case TargetType.CanvasGroup: + tween = ((CanvasGroup)target).DOFade(endValueFloat, duration); + break; +#endif +#if false // TK2D_MARKER + case TargetType.tk2dTextMesh: + tween = ((tk2dTextMesh)target).DOFade(endValueFloat, duration); + break; + case TargetType.tk2dBaseSprite: + tween = ((tk2dBaseSprite)target).DOFade(endValueFloat, duration); + break; +#endif +#if false // TEXTMESHPRO_MARKER + case TargetType.TextMeshProUGUI: + tween = ((TextMeshProUGUI)target).DOFade(endValueFloat, duration); + break; + case TargetType.TextMeshPro: + tween = ((TextMeshPro)target).DOFade(endValueFloat, duration); + break; +#endif + } + break; + case DOTweenAnimationType.Text: +#if true // UI_MARKER + switch (targetType) { + case TargetType.Text: + tween = ((Text)target).DOText(endValueString, duration, optionalBool0, optionalScrambleMode, optionalString); + break; + } +#endif +#if false // TK2D_MARKER + switch (targetType) { + case TargetType.tk2dTextMesh: + tween = ((tk2dTextMesh)target).DOText(endValueString, duration, optionalBool0, optionalScrambleMode, optionalString); + break; + } +#endif +#if false // TEXTMESHPRO_MARKER + switch (targetType) { + case TargetType.TextMeshProUGUI: + tween = ((TextMeshProUGUI)target).DOText(endValueString, duration, optionalBool0, optionalScrambleMode, optionalString); + break; + case TargetType.TextMeshPro: + tween = ((TextMeshPro)target).DOText(endValueString, duration, optionalBool0, optionalScrambleMode, optionalString); + break; + } +#endif + break; + case DOTweenAnimationType.PunchPosition: + switch (targetType) { + case TargetType.Transform: + tween = ((Transform)target).DOPunchPosition(endValueV3, duration, optionalInt0, optionalFloat0, optionalBool0); + break; +#if true // UI_MARKER + case TargetType.RectTransform: + tween = ((RectTransform)target).DOPunchAnchorPos(endValueV3, duration, optionalInt0, optionalFloat0, optionalBool0); + break; +#endif + } + break; + case DOTweenAnimationType.PunchScale: + tween = tweenGO.transform.DOPunchScale(endValueV3, duration, optionalInt0, optionalFloat0); + break; + case DOTweenAnimationType.PunchRotation: + tween = tweenGO.transform.DOPunchRotation(endValueV3, duration, optionalInt0, optionalFloat0); + break; + case DOTweenAnimationType.ShakePosition: + switch (targetType) { + case TargetType.Transform: + tween = ((Transform)target).DOShakePosition(duration, endValueV3, optionalInt0, optionalFloat0, optionalBool0); + break; +#if true // UI_MARKER + case TargetType.RectTransform: + tween = ((RectTransform)target).DOShakeAnchorPos(duration, endValueV3, optionalInt0, optionalFloat0, optionalBool0); + break; +#endif + } + break; + case DOTweenAnimationType.ShakeScale: + tween = tweenGO.transform.DOShakeScale(duration, endValueV3, optionalInt0, optionalFloat0); + break; + case DOTweenAnimationType.ShakeRotation: + tween = tweenGO.transform.DOShakeRotation(duration, endValueV3, optionalInt0, optionalFloat0); + break; + case DOTweenAnimationType.CameraAspect: + tween = ((Camera)target).DOAspect(endValueFloat, duration); + break; + case DOTweenAnimationType.CameraBackgroundColor: + tween = ((Camera)target).DOColor(endValueColor, duration); + break; + case DOTweenAnimationType.CameraFieldOfView: + tween = ((Camera)target).DOFieldOfView(endValueFloat, duration); + break; + case DOTweenAnimationType.CameraOrthoSize: + tween = ((Camera)target).DOOrthoSize(endValueFloat, duration); + break; + case DOTweenAnimationType.CameraPixelRect: + tween = ((Camera)target).DOPixelRect(endValueRect, duration); + break; + case DOTweenAnimationType.CameraRect: + tween = ((Camera)target).DORect(endValueRect, duration); + break; + } + + if (tween == null) return; + + if (isFrom) { + ((Tweener)tween).From(isRelative); + } else { + tween.SetRelative(isRelative); + } + GameObject setTarget = targetIsSelf || !tweenTargetIsTargetGO ? this.gameObject : targetGO; + tween.SetTarget(setTarget).SetDelay(delay).SetLoops(loops, loopType).SetAutoKill(autoKill) + .OnKill(()=> tween = null); + if (isSpeedBased) tween.SetSpeedBased(); + if (easeType == Ease.INTERNAL_Custom) tween.SetEase(easeCurve); + else tween.SetEase(easeType); + if (!string.IsNullOrEmpty(id)) tween.SetId(id); + tween.SetUpdate(isIndependentUpdate); + + if (hasOnStart) { + if (onStart != null) tween.OnStart(onStart.Invoke); + } else onStart = null; + if (hasOnPlay) { + if (onPlay != null) tween.OnPlay(onPlay.Invoke); + } else onPlay = null; + if (hasOnUpdate) { + if (onUpdate != null) tween.OnUpdate(onUpdate.Invoke); + } else onUpdate = null; + if (hasOnStepComplete) { + if (onStepComplete != null) tween.OnStepComplete(onStepComplete.Invoke); + } else onStepComplete = null; + if (hasOnComplete) { + if (onComplete != null) tween.OnComplete(onComplete.Invoke); + } else onComplete = null; + if (hasOnRewind) { + if (onRewind != null) tween.OnRewind(onRewind.Invoke); + } else onRewind = null; + + if (autoPlay) tween.Play(); + else tween.Pause(); + + if (hasOnTweenCreated && onTweenCreated != null) onTweenCreated.Invoke(); + } + + #endregion + + #region Public Methods + + // These methods are here so they can be called directly via Unity's UGUI event system + + public override void DOPlay() + { + DOTween.Play(this.gameObject); + } + + public override void DOPlayBackwards() + { + DOTween.PlayBackwards(this.gameObject); + } + + public override void DOPlayForward() + { + DOTween.PlayForward(this.gameObject); + } + + public override void DOPause() + { + DOTween.Pause(this.gameObject); + } + + public override void DOTogglePause() + { + DOTween.TogglePause(this.gameObject); + } + + public override void DORewind() + { + _playCount = -1; + // Rewind using Components order (in case there are multiple animations on the same property) + DOTweenAnimation[] anims = this.gameObject.GetComponents(); + for (int i = anims.Length - 1; i > -1; --i) { + Tween t = anims[i].tween; + if (t != null && t.IsInitialized()) anims[i].tween.Rewind(); + } + // DOTween.Rewind(this.gameObject); + } + + /// + /// Restarts the tween + /// + /// If TRUE, re-evaluates the tween's start and end values from its current position. + /// Set it to TRUE when spawning the same DOTweenAnimation in different positions (like when using a pooling system) + public override void DORestart(bool fromHere = false) + { + _playCount = -1; + if (tween == null) { + if (Debugger.logPriority > 1) Debugger.LogNullTween(tween); return; + } + if (fromHere && isRelative) ReEvaluateRelativeTween(); + DOTween.Restart(this.gameObject); + } + + public override void DOComplete() + { + DOTween.Complete(this.gameObject); + } + + public override void DOKill() + { + DOTween.Kill(this.gameObject); + tween = null; + } + + #region Specifics + + public void DOPlayById(string id) + { + DOTween.Play(this.gameObject, id); + } + public void DOPlayAllById(string id) + { + DOTween.Play(id); + } + + public void DOPauseAllById(string id) + { + DOTween.Pause(id); + } + + public void DOPlayBackwardsById(string id) + { + DOTween.PlayBackwards(this.gameObject, id); + } + public void DOPlayBackwardsAllById(string id) + { + DOTween.PlayBackwards(id); + } + + public void DOPlayForwardById(string id) + { + DOTween.PlayForward(this.gameObject, id); + } + public void DOPlayForwardAllById(string id) + { + DOTween.PlayForward(id); + } + + public void DOPlayNext() + { + DOTweenAnimation[] anims = this.GetComponents(); + while (_playCount < anims.Length - 1) { + _playCount++; + DOTweenAnimation anim = anims[_playCount]; + if (anim != null && anim.tween != null && !anim.tween.IsPlaying() && !anim.tween.IsComplete()) { + anim.tween.Play(); + break; + } + } + } + + public void DORewindAndPlayNext() + { + _playCount = -1; + DOTween.Rewind(this.gameObject); + DOPlayNext(); + } + + public void DORewindAllById(string id) + { + _playCount = -1; + DOTween.Rewind(id); + } + + public void DORestartById(string id) + { + _playCount = -1; + DOTween.Restart(this.gameObject, id); + } + public void DORestartAllById(string id) + { + _playCount = -1; + DOTween.Restart(id); + } + + /// + /// Returns the tweens created by this DOTweenAnimation, in the same order as they appear in the Inspector (top to bottom) + /// + public List GetTweens() + { +// return DOTween.TweensByTarget(this.gameObject); + + List result = new List(); + DOTweenAnimation[] anims = this.GetComponents(); + foreach (DOTweenAnimation anim in anims) result.Add(anim.tween); + return result; + } + + #endregion + + #region Internal (also used by Inspector) + + public static TargetType TypeToDOTargetType(Type t) + { + string str = t.ToString(); + int dotIndex = str.LastIndexOf("."); + if (dotIndex != -1) str = str.Substring(dotIndex + 1); + if (str.IndexOf("Renderer") != -1 && (str != "SpriteRenderer")) str = "Renderer"; +#if !true // PHYSICS_MARKER + if (str == "Rigidbody") str = "Transform"; +#endif +#if !true // PHYSICS2D_MARKER + if (str == "Rigidbody2D") str = "Transform"; +#endif +#if !true // UI_MARKER + if (str == "RectTransform") str = "Transform"; +#endif + return (TargetType)Enum.Parse(typeof(TargetType), str); + } + + // Editor preview system + /// + /// Previews the tween in the editor. Only for DOTween internal usage: don't use otherwise. + /// + public Tween CreateEditorPreview() + { + if (Application.isPlaying) return null; + + CreateTween(); + return tween; + } + + #endregion + + #endregion + + #region Private + + // Returns the gameObject whose target component should be animated + GameObject GetTweenGO() + { + return targetIsSelf ? this.gameObject : targetGO; + } + + // Re-evaluate relative position of path + void ReEvaluateRelativeTween() + { + GameObject tweenGO = GetTweenGO(); + if (tweenGO == null) { + Debug.LogWarning(string.Format("{0} :: This DOTweenAnimation's target/GameObject is unset: the tween will not be created.", this.gameObject.name), this.gameObject); + return; + } + if (animationType == DOTweenAnimationType.Move) { + ((Tweener)tween).ChangeEndValue(tweenGO.transform.position + endValueV3, true); + } else if (animationType == DOTweenAnimationType.LocalMove) { + ((Tweener)tween).ChangeEndValue(tweenGO.transform.localPosition + endValueV3, true); + } + } + + #endregion + } + + public static class DOTweenAnimationExtensions + { +// // Doesn't work on Win 8.1 +// public static bool IsSameOrSubclassOf(this Type t, Type tBase) +// { +// return t.IsSubclassOf(tBase) || t == tBase; +// } + + public static bool IsSameOrSubclassOf(this Component t) + { + return t is T; + } + } +} diff --git a/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs.meta b/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs.meta new file mode 100644 index 00000000..5d92ac7e --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/DOTweenAnimation.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4d0390bd8b8ffd640b34fe25065ff1df +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro/DOTweenPro.XML b/Assets/Demigiant/DOTweenPro/DOTweenPro.XML new file mode 100644 index 00000000..9a8fa695 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/DOTweenPro.XML @@ -0,0 +1,49 @@ + + + + DOTweenPro + + + + + Restarts the tween + + If TRUE, re-evaluates the tween's start and end values from its current position. + Set it to TRUE when spawning the same DOTweenPath in different positions (like when using a pooling system) + + + + Attach this to a GameObject to create and assign a path to it + + + + + Restarts the tween + + If TRUE, re-evaluates the tween's start and end values from its current position. + Set it to TRUE when spawning the same DOTweenPath in different positions (like when using a pooling system) + + + + Returns a list of points that are used to draw the path inside the editor. + + + + + Tweens a Vector3 along a spiral. + EndValue represents the direction of the spiral + + + + + Spiral tween mode + + + + The spiral motion will expand outwards for the whole the tween + + + The spiral motion will expand outwards for half the tween and then will spiral back to the starting position + + + diff --git a/Assets/Demigiant/DOTweenPro/DOTweenPro.XML.meta b/Assets/Demigiant/DOTweenPro/DOTweenPro.XML.meta new file mode 100644 index 00000000..a396828a --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/DOTweenPro.XML.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: db7d7ef84c388bc4fbc3835d31a15306 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro/DOTweenPro.dll b/Assets/Demigiant/DOTweenPro/DOTweenPro.dll new file mode 100644 index 0000000000000000000000000000000000000000..bfd1a806e7a4e8e8f6bf0de0cd04248098749176 GIT binary patch literal 15872 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 VDGv-G$H0Jwkth7?_5Ys-{x_BF7Ht3k literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DOTweenPro/DOTweenPro.dll.meta b/Assets/Demigiant/DOTweenPro/DOTweenPro.dll.meta new file mode 100644 index 00000000..6bcf8170 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/DOTweenPro.dll.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: aa0b1eebb5db27a419fa4564bbe5c9c5 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs b/Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs new file mode 100644 index 00000000..12ee7ef1 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs @@ -0,0 +1,90 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2018/07/13 + +using System; +using DG.Tweening.Core; +using DG.Tweening.Plugins; +using UnityEngine; + +#pragma warning disable 1591 +namespace DG.Tweening +{ + public static class DOTweenProShortcuts + { + static DOTweenProShortcuts() + { + // Create stub instances of custom plugins, in order to allow IL2CPP to understand they must be included in the build +#pragma warning disable 219 + SpiralPlugin stub = new SpiralPlugin(); +#pragma warning restore 219 + } + + #region Shortcuts + + #region Transform + + /// Tweens a Transform's localPosition in a spiral shape. + /// Also stores the transform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The axis around which the spiral will rotate + /// The type of spiral movement + /// Speed of the rotations + /// Frequency of the rotation. Lower values lead to wider spirals + /// Indicates how much the tween should move along the spiral's axis + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOSpiral( + this Transform target, float duration, Vector3? axis = null, SpiralMode mode = SpiralMode.Expand, + float speed = 1, float frequency = 10, float depth = 0, bool snapping = false + ) { + if (Mathf.Approximately(speed, 0)) speed = 1; + if (axis == null || axis == Vector3.zero) axis = Vector3.forward; + + TweenerCore t = DOTween.To(SpiralPlugin.Get(), () => target.localPosition, x => target.localPosition = x, (Vector3)axis, duration) + .SetTarget(target); + + t.plugOptions.mode = mode; + t.plugOptions.speed = speed; + t.plugOptions.frequency = frequency; + t.plugOptions.depth = depth; + t.plugOptions.snapping = snapping; + return t; + } + + #endregion + +#if true // PHYSICS_MARKER + #region Rigidbody + + /// Tweens a Rigidbody's position in a spiral shape. + /// Also stores the transform as the tween's target so it can be used for filtered operations + /// The duration of the tween + /// The axis around which the spiral will rotate + /// The type of spiral movement + /// Speed of the rotations + /// Frequency of the rotation. Lower values lead to wider spirals + /// Indicates how much the tween should move along the spiral's axis + /// If TRUE the tween will smoothly snap all values to integers + public static Tweener DOSpiral( + this Rigidbody target, float duration, Vector3? axis = null, SpiralMode mode = SpiralMode.Expand, + float speed = 1, float frequency = 10, float depth = 0, bool snapping = false + ) { + if (Mathf.Approximately(speed, 0)) speed = 1; + if (axis == null || axis == Vector3.zero) axis = Vector3.forward; + + TweenerCore t = DOTween.To(SpiralPlugin.Get(), () => target.position, target.MovePosition, (Vector3)axis, duration) + .SetTarget(target); + + t.plugOptions.mode = mode; + t.plugOptions.speed = speed; + t.plugOptions.frequency = frequency; + t.plugOptions.depth = depth; + t.plugOptions.snapping = snapping; + return t; + } + + #endregion +#endif + + #endregion + } +} diff --git a/Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs.meta b/Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs.meta new file mode 100644 index 00000000..99f8a2e3 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/DOTweenProShortcuts.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1c3190a1a1c53f449926f6d5542b4ce5 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs b/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs new file mode 100644 index 00000000..e4fb686c --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs @@ -0,0 +1,355 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2015/03/27 19:02 +// +// License Copyright (c) Daniele Giardini. +// This work is subject to the terms at http://dotween.demigiant.com/license.php + +#if false // MODULE_MARKER +using UnityEngine; +using TMPro; + +namespace DG.Tweening +{ + /// + /// Methods that extend TMP_Text objects and allow to directly create and control tweens from their instances. + /// + public static class ShortcutExtensionsTMPText + { + #region Colors + + /// Tweens a TextMeshPro's color to the given value. + /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOColor(this TMP_Text target, Color endValue, float duration) + { + return DOTween.To(() => target.color, x => target.color = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a TextMeshPro's faceColor to the given value. + /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFaceColor(this TMP_Text target, Color32 endValue, float duration) + { + return DOTween.To(() => target.faceColor, x => target.faceColor = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a TextMeshPro's outlineColor to the given value. + /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOOutlineColor(this TMP_Text target, Color32 endValue, float duration) + { + return DOTween.To(() => target.outlineColor, x => target.outlineColor = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a TextMeshPro's glow color to the given value. + /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + /// If TRUE will use the fontSharedMaterial instead than the fontMaterial + public static Tweener DOGlowColor(this TMP_Text target, Color endValue, float duration, bool useSharedMaterial = false) + { + return useSharedMaterial + ? target.fontSharedMaterial.DOColor(endValue, "_GlowColor", duration).SetTarget(target) + : target.fontMaterial.DOColor(endValue, "_GlowColor", duration).SetTarget(target); + } + + /// Tweens a TextMeshPro's alpha color to the given value. + /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFade(this TMP_Text target, float endValue, float duration) + { + return DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a TextMeshPro faceColor's alpha to the given value. + /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFaceFade(this TMP_Text target, float endValue, float duration) + { + return DOTween.ToAlpha(() => target.faceColor, x => target.faceColor = x, endValue, duration) + .SetTarget(target); + } + + #endregion + + #region Other + + /// Tweens a TextMeshPro's scale to the given value (using correct uniform scale as TMP requires). + /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScale(this TMP_Text target, float endValue, float duration) + { + Transform t = target.transform; + Vector3 endValueV3 = new Vector3(endValue, endValue, endValue); + return DOTween.To(() => t.localScale, x => t.localScale = x, endValueV3, duration).SetTarget(target); + } + + /// Tweens a TextMeshPro's fontSize to the given value. + /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFontSize(this TMP_Text target, float endValue, float duration) + { + return DOTween.To(() => target.fontSize, x => target.fontSize = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a TextMeshPro's maxVisibleCharacters to the given value. + /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOMaxVisibleCharacters(this TMP_Text target, int endValue, float duration) + { + return DOTween.To(() => target.maxVisibleCharacters, x => target.maxVisibleCharacters = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a TextMeshPro's text to the given value. + /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations + /// The end string to tween toThe duration of the tween + /// If TRUE (default), rich text will be interpreted correctly while animated, + /// otherwise all tags will be considered as normal text + /// The type of scramble mode to use, if any + /// A string containing the characters to use for scrambling. + /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + /// Leave it to NULL (default) to use default ones + public static Tweener DOText(this TMP_Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null) + { + return DOTween.To(() => target.text, x => target.text = x, endValue, duration) + .SetOptions(richTextEnabled, scrambleMode, scrambleChars) + .SetTarget(target); + } + + #endregion + } + +// /// +// /// Methods that extend TextMeshPro objects and allow to directly create and control tweens from their instances. +// /// +// public static class ShortcutExtensionsTextMeshPro +// { +// #region Colors +// +// /// Tweens a TextMeshPro's color to the given value. +// /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOColor(this TextMeshPro target, Color endValue, float duration) +// { +// return DOTween.To(() => target.color, x => target.color = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshPro's faceColor to the given value. +// /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOFaceColor(this TextMeshPro target, Color32 endValue, float duration) +// { +// return DOTween.To(() => target.faceColor, x => target.faceColor = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshPro's outlineColor to the given value. +// /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOOutlineColor(this TextMeshPro target, Color32 endValue, float duration) +// { +// return DOTween.To(() => target.outlineColor, x => target.outlineColor = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshPro's glow color to the given value. +// /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// /// If TRUE will use the fontSharedMaterial instead than the fontMaterial +// public static Tweener DOGlowColor(this TextMeshPro target, Color endValue, float duration, bool useSharedMaterial = false) +// { +// return useSharedMaterial +// ? target.fontSharedMaterial.DOColor(endValue, "_GlowColor", duration).SetTarget(target) +// : target.fontMaterial.DOColor(endValue, "_GlowColor", duration).SetTarget(target); +// } +// +// /// Tweens a TextMeshPro's alpha color to the given value. +// /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOFade(this TextMeshPro target, float endValue, float duration) +// { +// return DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshPro faceColor's alpha to the given value. +// /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOFaceFade(this TextMeshPro target, float endValue, float duration) +// { +// return DOTween.ToAlpha(() => target.faceColor, x => target.faceColor = x, endValue, duration) +// .SetTarget(target); +// } +// +// #endregion +// +// #region Other +// +// /// Tweens a TextMeshPro's scale to the given value (using correct uniform scale as TMP requires). +// /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOScale(this TextMeshPro target, float endValue, float duration) +// { +// Transform t = target.transform; +// Vector3 endValueV3 = new Vector3(endValue, endValue, endValue); +// return DOTween.To(() => t.localScale, x => t.localScale = x, endValueV3, duration).SetTarget(target); +// } +// +// /// Tweens a TextMeshPro's fontSize to the given value. +// /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOFontSize(this TextMeshPro target, float endValue, float duration) +// { +// return DOTween.To(() => target.fontSize, x => target.fontSize = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshPro's maxVisibleCharacters to the given value. +// /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOMaxVisibleCharacters(this TextMeshPro target, int endValue, float duration) +// { +// return DOTween.To(() => target.maxVisibleCharacters, x => target.maxVisibleCharacters = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshPro's text to the given value. +// /// Also stores the TextMeshPro as the tween's target so it can be used for filtered operations +// /// The end string to tween toThe duration of the tween +// /// If TRUE (default), rich text will be interpreted correctly while animated, +// /// otherwise all tags will be considered as normal text +// /// The type of scramble mode to use, if any +// /// A string containing the characters to use for scrambling. +// /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. +// /// Leave it to NULL (default) to use default ones +// public static Tweener DOText(this TextMeshPro target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null) +// { +// return DOTween.To(() => target.text, x => target.text = x, endValue, duration) +// .SetOptions(richTextEnabled, scrambleMode, scrambleChars) +// .SetTarget(target); +// } +// +// #endregion +// } +// +// /// +// /// Methods that extend TextMeshProUGUI objects and allow to directly create and control tweens from their instances. +// /// +// public static class ShortcutExtensionsTextMeshProUGUI +// { +// #region Colors +// +// /// Tweens a TextMeshProUGUI's color to the given value. +// /// Also stores the TextMeshProUGUI as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOColor(this TextMeshProUGUI target, Color endValue, float duration) +// { +// return DOTween.To(() => target.color, x => target.color = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshProUGUI's faceColor to the given value. +// /// Also stores the TextMeshProUGUI as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOFaceColor(this TextMeshProUGUI target, Color32 endValue, float duration) +// { +// return DOTween.To(() => target.faceColor, x => target.faceColor = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshProUGUI's outlineColor to the given value. +// /// Also stores the TextMeshProUGUI as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOOutlineColor(this TextMeshProUGUI target, Color32 endValue, float duration) +// { +// return DOTween.To(() => target.outlineColor, x => target.outlineColor = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshProUGUI's glow color to the given value. +// /// Also stores the TextMeshProUGUI as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// /// If TRUE will use the fontSharedMaterial instead than the fontMaterial +// public static Tweener DOGlowColor(this TextMeshProUGUI target, Color endValue, float duration, bool useSharedMaterial = false) +// { +// return useSharedMaterial +// ? target.fontSharedMaterial.DOColor(endValue, "_GlowColor", duration).SetTarget(target) +// : target.fontMaterial.DOColor(endValue, "_GlowColor", duration).SetTarget(target); +// } +// +// /// Tweens a TextMeshProUGUI's alpha color to the given value. +// /// Also stores the TextMeshProUGUI as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOFade(this TextMeshProUGUI target, float endValue, float duration) +// { +// return DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshProUGUI faceColor's alpha to the given value. +// /// Also stores the TextMeshProUGUI as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOFaceFade(this TextMeshProUGUI target, float endValue, float duration) +// { +// return DOTween.ToAlpha(() => target.faceColor, x => target.faceColor = x, endValue, duration) +// .SetTarget(target); +// } +// +// #endregion +// +// #region Other +// +// /// Tweens a TextMeshProUGUI's scale to the given value (using correct uniform scale as TMP requires). +// /// Also stores the TextMeshProUGUI as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOScale(this TextMeshProUGUI target, float endValue, float duration) +// { +// Transform t = target.transform; +// Vector3 endValueV3 = new Vector3(endValue, endValue, endValue); +// return DOTween.To(() => t.localScale, x => t.localScale = x, endValueV3, duration).SetTarget(target); +// } +// +// /// Tweens a TextMeshProUGUI's fontSize to the given value. +// /// Also stores the TextMeshProUGUI as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOFontSize(this TextMeshProUGUI target, float endValue, float duration) +// { +// return DOTween.To(() => target.fontSize, x => target.fontSize = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshProUGUI's maxVisibleCharacters to the given value. +// /// Also stores the TextMeshProUGUI as the tween's target so it can be used for filtered operations +// /// The end value to reachThe duration of the tween +// public static Tweener DOMaxVisibleCharacters(this TextMeshProUGUI target, int endValue, float duration) +// { +// return DOTween.To(() => target.maxVisibleCharacters, x => target.maxVisibleCharacters = x, endValue, duration) +// .SetTarget(target); +// } +// +// /// Tweens a TextMeshProUGUI's text to the given value. +// /// Also stores the TextMeshProUGUI as the tween's target so it can be used for filtered operations +// /// The end string to tween toThe duration of the tween +// /// If TRUE (default), rich text will be interpreted correctly while animated, +// /// otherwise all tags will be considered as normal text +// /// The type of scramble mode to use, if any +// /// A string containing the characters to use for scrambling. +// /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. +// /// Leave it to NULL (default) to use default ones +// public static Tweener DOText(this TextMeshProUGUI target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null) +// { +// return DOTween.To(() => target.text, x => target.text = x, endValue, duration) +// .SetOptions(richTextEnabled, scrambleMode, scrambleChars) +// .SetTarget(target); +// } +// +// #endregion +// } +} +#endif diff --git a/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs.meta b/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs.meta new file mode 100644 index 00000000..66ff6cdf --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/DOTweenTextMeshPro.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8fb0d65aa5b048649a3a785b82b8f8db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs b/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs new file mode 100644 index 00000000..d55cc3e6 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs @@ -0,0 +1,227 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2014/10/27 15:59 +// +// License Copyright (c) Daniele Giardini. +// This work is subject to the terms at http://dotween.demigiant.com/license.php + +#if false // MODULE_MARKER +using UnityEngine; + +namespace DG.Tweening +{ + /// + /// Methods that extend 2D Toolkit objects and allow to directly create and control tweens from their instances. + /// + public static class ShortcutExtensionsTk2d + { + #region Sprite + + /// Tweens a 2D Toolkit Sprite's dimensions to the given value. + /// Also stores the Sprite as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScale(this tk2dBaseSprite target, Vector3 endValue, float duration) + { + return DOTween.To(() => target.scale, x => target.scale = x, endValue, duration) + .SetTarget(target); + } + /// Tweens a Sprite's dimensions to the given value. + /// Also stores the Sprite as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScaleX(this tk2dBaseSprite target, float endValue, float duration) + { + return DOTween.To(() => target.scale, x => target.scale = x, new Vector3(endValue, 0, 0), duration) + .SetOptions(AxisConstraint.X) + .SetTarget(target); + } + /// Tweens a Sprite's dimensions to the given value. + /// Also stores the Sprite as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScaleY(this tk2dBaseSprite target, float endValue, float duration) + { + return DOTween.To(() => target.scale, x => target.scale = x, new Vector3(0, endValue, 0), duration) + .SetOptions(AxisConstraint.Y) + .SetTarget(target); + } + /// Tweens a Sprite's dimensions to the given value. + /// Also stores the Sprite as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScaleZ(this tk2dBaseSprite target, float endValue, float duration) + { + return DOTween.To(() => target.scale, x => target.scale = x, new Vector3(0, 0, endValue), duration) + .SetOptions(AxisConstraint.Z) + .SetTarget(target); + } + + /// Tweens a 2D Toolkit Sprite's color to the given value. + /// Also stores the Sprite as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOColor(this tk2dBaseSprite target, Color endValue, float duration) + { + return DOTween.To(() => target.color, x => target.color = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a 2D Toolkit Sprite's alpha color to the given value. + /// Also stores the Sprite as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFade(this tk2dBaseSprite target, float endValue, float duration) + { + return DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a 2D Toolkit Sprite's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this tk2dBaseSprite target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + return s; + } + + #endregion + + #region tk2dSlicedSprite + + /// Tweens a 2D Toolkit SlicedSprite's dimensions to the given value. + /// Also stores the SlicedSprite as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScaleDimensions(this tk2dSlicedSprite target, Vector2 endValue, float duration) + { + return DOTween.To(() => target.dimensions, x => target.dimensions = x, endValue, duration) + .SetTarget(target); + } + /// Tweens a SlicedSprite's dimensions to the given value. + /// Also stores the SlicedSprite as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScaleDimensionsX(this tk2dSlicedSprite target, float endValue, float duration) + { + return DOTween.To(() => target.dimensions, x => target.dimensions = x, new Vector2(endValue, 0), duration) + .SetOptions(AxisConstraint.X) + .SetTarget(target); + } + /// Tweens a SlicedSprite's dimensions to the given value. + /// Also stores the SlicedSprite as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScaleDimensionsY(this tk2dSlicedSprite target, float endValue, float duration) + { + return DOTween.To(() => target.dimensions, x => target.dimensions = x, new Vector2(0, endValue), duration) + .SetOptions(AxisConstraint.Y) + .SetTarget(target); + } + + #endregion + + #region TextMesh + + /// Tweens a 2D Toolkit TextMesh's dimensions to the given value. + /// Also stores the TextMesh as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScale(this tk2dTextMesh target, Vector3 endValue, float duration) + { + return DOTween.To(() => target.scale, x => target.scale = x, endValue, duration) + .SetTarget(target); + } + /// Tweens a 2D Toolkit TextMesh's dimensions to the given value. + /// Also stores the TextMesh as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScaleX(this tk2dTextMesh target, float endValue, float duration) + { + return DOTween.To(() => target.scale, x => target.scale = x, new Vector3(endValue, 0, 0), duration) + .SetOptions(AxisConstraint.X) + .SetTarget(target); + } + /// Tweens a 2D Toolkit TextMesh's dimensions to the given value. + /// Also stores the TextMesh as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScaleY(this tk2dTextMesh target, float endValue, float duration) + { + return DOTween.To(() => target.scale, x => target.scale = x, new Vector3(0, endValue, 0), duration) + .SetOptions(AxisConstraint.Y) + .SetTarget(target); + } + /// Tweens a 2D Toolkit TextMesh's dimensions to the given value. + /// Also stores the TextMesh as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOScaleZ(this tk2dTextMesh target, float endValue, float duration) + { + return DOTween.To(() => target.scale, x => target.scale = x, new Vector3(0, 0, endValue), duration) + .SetOptions(AxisConstraint.Z) + .SetTarget(target); + } + + /// Tweens a 2D Toolkit TextMesh's color to the given value. + /// Also stores the TextMesh as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOColor(this tk2dTextMesh target, Color endValue, float duration) + { + return DOTween.To(() => target.color, x => target.color = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a 2D Toolkit TextMesh's alpha color to the given value. + /// Also stores the TextMesh as the tween's target so it can be used for filtered operations + /// The end value to reachThe duration of the tween + public static Tweener DOFade(this tk2dTextMesh target, float endValue, float duration) + { + return DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration) + .SetTarget(target); + } + + /// Tweens a 2D Toolkit TextMesh's color using the given gradient + /// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener). + /// Also stores the image as the tween's target so it can be used for filtered operations + /// The gradient to useThe duration of the tween + public static Sequence DOGradientColor(this tk2dTextMesh target, Gradient gradient, float duration) + { + Sequence s = DOTween.Sequence(); + GradientColorKey[] colors = gradient.colorKeys; + int len = colors.Length; + for (int i = 0; i < len; ++i) { + GradientColorKey c = colors[i]; + if (i == 0 && c.time <= 0) { + target.color = c.color; + continue; + } + float colorDuration = i == len - 1 + ? duration - s.Duration(false) // Verifies that total duration is correct + : duration * (i == 0 ? c.time : c.time - colors[i - 1].time); + s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear)); + } + return s; + } + + /// Tweens a tk2dTextMesh's text to the given value. + /// Also stores the tk2dTextMesh as the tween's target so it can be used for filtered operations + /// The end string to tween toThe duration of the tween + /// If TRUE (default), rich text will be interpreted correctly while animated, + /// otherwise all tags will be considered as normal text + /// The type of scramble mode to use, if any + /// A string containing the characters to use for scrambling. + /// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters. + /// Leave it to NULL (default) to use default ones + public static Tweener DOText(this tk2dTextMesh target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null) + { + return DOTween.To(() => target.text, x => target.text = x, endValue, duration) + .SetOptions(richTextEnabled, scrambleMode, scrambleChars) + .SetTarget(target); + } + + #endregion + } +} +#endif diff --git a/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs.meta b/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs.meta new file mode 100644 index 00000000..d9c79021 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/DOTweenTk2d.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b590cd7c24ffa5d4faa5b6fa993cccad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro/Editor.meta b/Assets/Demigiant/DOTweenPro/Editor.meta new file mode 100644 index 00000000..335c2a65 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: be38134a37421224896f2ce42b1fadf5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs b/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs new file mode 100644 index 00000000..1ec43091 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs @@ -0,0 +1,707 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2015/03/12 16:03 + +using System; +using System.Collections.Generic; +using System.IO; +using DG.DemiEditor; +using DG.DOTweenEditor.Core; +using DG.DOTweenEditor.UI; +using DG.Tweening; +using DG.Tweening.Core; +using UnityEditor; +using UnityEngine; +#if true // UI_MARKER +using UnityEngine.UI; +#endif +#if false // TEXTMESHPRO_MARKER + using TMPro; +#endif + +namespace DG.DOTweenEditor +{ + [CustomEditor(typeof(DOTweenAnimation))] + public class DOTweenAnimationInspector : ABSAnimationInspector + { + enum FadeTargetType + { + CanvasGroup, + Image + } + + enum ChooseTargetMode + { + None, + BetweenCanvasGroupAndImage + } + + static readonly Dictionary _AnimationTypeToComponent = new Dictionary() { + { DOTweenAnimationType.Move, new[] { +#if true // PHYSICS_MARKER + typeof(Rigidbody), +#endif +#if true // PHYSICS2D_MARKER + typeof(Rigidbody2D), +#endif +#if true // UI_MARKER + typeof(RectTransform), +#endif + typeof(Transform) + }}, + { DOTweenAnimationType.Rotate, new[] { +#if true // PHYSICS_MARKER + typeof(Rigidbody), +#endif +#if true // PHYSICS2D_MARKER + typeof(Rigidbody2D), +#endif + typeof(Transform) + }}, + { DOTweenAnimationType.LocalMove, new[] { typeof(Transform) } }, + { DOTweenAnimationType.LocalRotate, new[] { typeof(Transform) } }, + { DOTweenAnimationType.Scale, new[] { typeof(Transform) } }, + { DOTweenAnimationType.Color, new[] { + typeof(Light), +#if true // SPRITE_MARKER + typeof(SpriteRenderer), +#endif +#if true // UI_MARKER + typeof(Image), typeof(Text), +#endif + typeof(Renderer), + }}, + { DOTweenAnimationType.Fade, new[] { + typeof(Light), +#if true // SPRITE_MARKER + typeof(SpriteRenderer), +#endif +#if true // UI_MARKER + typeof(Image), typeof(Text), typeof(CanvasGroup), +#endif + typeof(Renderer), + }}, +#if true // UI_MARKER + { DOTweenAnimationType.Text, new[] { typeof(Text) } }, +#endif + { DOTweenAnimationType.PunchPosition, new[] { +#if true // UI_MARKER + typeof(RectTransform), +#endif + typeof(Transform) + }}, + { DOTweenAnimationType.PunchRotation, new[] { typeof(Transform) } }, + { DOTweenAnimationType.PunchScale, new[] { typeof(Transform) } }, + { DOTweenAnimationType.ShakePosition, new[] { +#if true // UI_MARKER + typeof(RectTransform), +#endif + typeof(Transform) + }}, + { DOTweenAnimationType.ShakeRotation, new[] { typeof(Transform) } }, + { DOTweenAnimationType.ShakeScale, new[] { typeof(Transform) } }, + { DOTweenAnimationType.CameraAspect, new[] { typeof(Camera) } }, + { DOTweenAnimationType.CameraBackgroundColor, new[] { typeof(Camera) } }, + { DOTweenAnimationType.CameraFieldOfView, new[] { typeof(Camera) } }, + { DOTweenAnimationType.CameraOrthoSize, new[] { typeof(Camera) } }, + { DOTweenAnimationType.CameraPixelRect, new[] { typeof(Camera) } }, + { DOTweenAnimationType.CameraRect, new[] { typeof(Camera) } }, +#if true // UI_MARKER + { DOTweenAnimationType.UIWidthHeight, new[] { typeof(RectTransform) } }, +#endif + }; + +#if false // TK2D_MARKER + static readonly Dictionary _Tk2dAnimationTypeToComponent = new Dictionary() { + { DOTweenAnimationType.Scale, new[] { typeof(tk2dBaseSprite), typeof(tk2dTextMesh) } }, + { DOTweenAnimationType.Color, new[] { typeof(tk2dBaseSprite), typeof(tk2dTextMesh) } }, + { DOTweenAnimationType.Fade, new[] { typeof(tk2dBaseSprite), typeof(tk2dTextMesh) } }, + { DOTweenAnimationType.Text, new[] { typeof(tk2dTextMesh) } } + }; +#endif +#if false // TEXTMESHPRO_MARKER + static readonly Dictionary _TMPAnimationTypeToComponent = new Dictionary() { + { DOTweenAnimationType.Color, new[] { typeof(TextMeshPro), typeof(TextMeshProUGUI) } }, + { DOTweenAnimationType.Fade, new[] { typeof(TextMeshPro), typeof(TextMeshProUGUI) } }, + { DOTweenAnimationType.Text, new[] { typeof(TextMeshPro), typeof(TextMeshProUGUI) } } + }; +#endif + + static readonly string[] _AnimationType = new[] { + "None", + "Move", "LocalMove", + "Rotate", "LocalRotate", + "Scale", + "Color", "Fade", +#if true // UI_MARKER + "Text", +#endif +#if false // TK2D_MARKER + "Text", +#endif +#if false // TEXTMESHPRO_MARKER + "Text", +#endif +#if true // UI_MARKER + "UIWidthHeight", +#endif + "Punch/Position", "Punch/Rotation", "Punch/Scale", + "Shake/Position", "Shake/Rotation", "Shake/Scale", + "Camera/Aspect", "Camera/BackgroundColor", "Camera/FieldOfView", "Camera/OrthoSize", "Camera/PixelRect", "Camera/Rect" + }; + static string[] _animationTypeNoSlashes; // _AnimationType list without slashes in values + static string[] _datString; // String representation of DOTweenAnimation enum (here for caching reasons) + + DOTweenAnimation _src; + bool _runtimeEditMode; // If TRUE allows to change and save stuff at runtime + bool _refreshRequired; // If TRUE refreshes components data + int _totComponentsOnSrc; // Used to determine if a Component is added or removed from the source + bool _isLightSrc; // Used to determine if we're tweening a Light, to set the max Fade value to more than 1 +#pragma warning disable 414 + ChooseTargetMode _chooseTargetMode = ChooseTargetMode.None; +#pragma warning restore 414 + + static readonly GUIContent _GuiC_selfTarget_true = new GUIContent( + "SELF", "Will animate components on this gameObject" + ); + static readonly GUIContent _GuiC_selfTarget_false = new GUIContent( + "OTHER", "Will animate components on the given gameObject instead than on this one" + ); + static readonly GUIContent _GuiC_tweenTargetIsTargetGO_true = new GUIContent( + "Use As Tween Target", "Will set the tween target (via SetTarget, used to control a tween directly from a target) to the \"OTHER\" gameObject" + ); + static readonly GUIContent _GuiC_tweenTargetIsTargetGO_false = new GUIContent( + "Use As Tween Target", "Will set the tween target (via SetTarget, used to control a tween directly from a target) to the gameObject containing this animation, not the \"OTHER\" one" + ); + + #region MonoBehaviour Methods + + void OnEnable() + { + _src = target as DOTweenAnimation; + + onStartProperty = base.serializedObject.FindProperty("onStart"); + onPlayProperty = base.serializedObject.FindProperty("onPlay"); + onUpdateProperty = base.serializedObject.FindProperty("onUpdate"); + onStepCompleteProperty = base.serializedObject.FindProperty("onStepComplete"); + onCompleteProperty = base.serializedObject.FindProperty("onComplete"); + onRewindProperty = base.serializedObject.FindProperty("onRewind"); + onTweenCreatedProperty = base.serializedObject.FindProperty("onTweenCreated"); + + // Convert _AnimationType to _animationTypeNoSlashes + int len = _AnimationType.Length; + _animationTypeNoSlashes = new string[len]; + for (int i = 0; i < len; ++i) { + string a = _AnimationType[i]; + a = a.Replace("/", ""); + _animationTypeNoSlashes[i] = a; + } + } + + void OnDisable() + { + DOTweenPreviewManager.StopAllPreviews(); + } + + override public void OnInspectorGUI() + { + base.OnInspectorGUI(); + + GUILayout.Space(3); + EditorGUIUtils.SetGUIStyles(); + + bool playMode = Application.isPlaying; + _runtimeEditMode = _runtimeEditMode && playMode; + + GUILayout.BeginHorizontal(); + EditorGUIUtils.InspectorLogo(); + GUILayout.Label(_src.animationType.ToString() + (string.IsNullOrEmpty(_src.id) ? "" : " [" + _src.id + "]"), EditorGUIUtils.sideLogoIconBoldLabelStyle); + // Up-down buttons + GUILayout.FlexibleSpace(); + if (GUILayout.Button("▲", DeGUI.styles.button.toolIco)) UnityEditorInternal.ComponentUtility.MoveComponentUp(_src); + if (GUILayout.Button("▼", DeGUI.styles.button.toolIco)) UnityEditorInternal.ComponentUtility.MoveComponentDown(_src); + GUILayout.EndHorizontal(); + + if (playMode) { + if (_runtimeEditMode) { + + } else { + GUILayout.Space(8); + GUILayout.Label("Animation Editor disabled while in play mode", EditorGUIUtils.wordWrapLabelStyle); + if (!_src.isActive) { + GUILayout.Label("This animation has been toggled as inactive and won't be generated", EditorGUIUtils.wordWrapLabelStyle); + GUI.enabled = false; + } + if (GUILayout.Button(new GUIContent("Activate Edit Mode", "Switches to Runtime Edit Mode, where you can change animations values and restart them"))) { + _runtimeEditMode = true; + } + GUILayout.Label("NOTE: when using DOPlayNext, the sequence is determined by the DOTweenAnimation Components order in the target GameObject's Inspector", EditorGUIUtils.wordWrapLabelStyle); + GUILayout.Space(10); + if (!_runtimeEditMode) return; + } + } + + Undo.RecordObject(_src, "DOTween Animation"); + +// _src.isValid = Validate(); // Moved down + + EditorGUIUtility.labelWidth = 110; + + if (playMode) { + GUILayout.Space(4); + DeGUILayout.Toolbar("Edit Mode Commands"); + DeGUILayout.BeginVBox(DeGUI.styles.box.stickyTop); + GUILayout.BeginHorizontal(); + if (GUILayout.Button("TogglePause")) _src.tween.TogglePause(); + if (GUILayout.Button("Rewind")) _src.tween.Rewind(); + if (GUILayout.Button("Restart")) _src.tween.Restart(); + GUILayout.EndHorizontal(); + if (GUILayout.Button("Commit changes and restart")) { + _src.tween.Rewind(); + _src.tween.Kill(); + if (_src.isValid) { + _src.CreateTween(); + _src.tween.Play(); + } + } + GUILayout.Label("To apply your changes when exiting Play mode, use the Component's upper right menu and choose \"Copy Component\", then \"Paste Component Values\" after exiting Play mode", DeGUI.styles.label.wordwrap); + DeGUILayout.EndVBox(); + } else { + bool hasManager = _src.GetComponent() != null; + if (!hasManager) { + if (GUILayout.Button(new GUIContent("Add Manager", "Adds a manager component which allows you to choose additional options for this gameObject"))) { + _src.gameObject.AddComponent(); + } + } + } + + // Preview in editor + bool isPreviewing = DOTweenPreviewManager.PreviewGUI(_src); + + EditorGUI.BeginDisabledGroup(isPreviewing); + // Choose target + GUILayout.BeginHorizontal(); + _src.isActive = EditorGUILayout.Toggle(new GUIContent("", "If unchecked, this animation will not be created"), _src.isActive, GUILayout.Width(14)); + EditorGUI.BeginChangeCheck(); + EditorGUI.BeginChangeCheck(); + _src.targetIsSelf = DeGUILayout.ToggleButton( + _src.targetIsSelf, _src.targetIsSelf ? _GuiC_selfTarget_true : _GuiC_selfTarget_false, + new Color(1f, 0.78f, 0f), DeGUI.colors.bg.toggleOn, new Color(0.33f, 0.14f, 0.02f), DeGUI.colors.content.toggleOn, + null, GUILayout.Width(47) + ); + bool innerChanged = EditorGUI.EndChangeCheck(); + if (innerChanged) { + _src.targetGO = null; + GUI.changed = true; + } + if (_src.targetIsSelf) GUILayout.Label(_GuiC_selfTarget_true.tooltip); + else { + using (new DeGUI.ColorScope(null, null, _src.targetGO == null ? Color.red : Color.white)) { + _src.targetGO = (GameObject)EditorGUILayout.ObjectField(_src.targetGO, typeof(GameObject), true); + } + _src.tweenTargetIsTargetGO = DeGUILayout.ToggleButton( + _src.tweenTargetIsTargetGO, _src.tweenTargetIsTargetGO ? _GuiC_tweenTargetIsTargetGO_true : _GuiC_tweenTargetIsTargetGO_false, + GUILayout.Width(131) + ); + } + bool check = EditorGUI.EndChangeCheck(); + if (check) _refreshRequired = true; + GUILayout.EndHorizontal(); + + GameObject targetGO = _src.targetIsSelf ? _src.gameObject : _src.targetGO; + + if (targetGO == null) { + // Uses external target gameObject but it's not set + if (_src.targetGO != null || _src.target != null) { + _src.targetGO = null; + _src.target = null; + GUI.changed = true; + } + } else { + GUILayout.BeginHorizontal(); + DOTweenAnimationType prevAnimType = _src.animationType; +// _src.animationType = (DOTweenAnimationType)EditorGUILayout.EnumPopup(_src.animationType, EditorGUIUtils.popupButton); + GUI.enabled = GUI.enabled && _src.isActive; + _src.animationType = AnimationToDOTweenAnimationType(_AnimationType[EditorGUILayout.Popup(DOTweenAnimationTypeToPopupId(_src.animationType), _AnimationType)]); + _src.autoPlay = DeGUILayout.ToggleButton(_src.autoPlay, new GUIContent("AutoPlay", "If selected, the tween will play automatically")); + _src.autoKill = DeGUILayout.ToggleButton(_src.autoKill, new GUIContent("AutoKill", "If selected, the tween will be killed when it completes, and won't be reusable")); + GUILayout.EndHorizontal(); + if (prevAnimType != _src.animationType) { + // Set default optional values based on animation type + _src.endValueTransform = null; + _src.useTargetAsV3 = false; + switch (_src.animationType) { + case DOTweenAnimationType.Move: + case DOTweenAnimationType.LocalMove: + case DOTweenAnimationType.Rotate: + case DOTweenAnimationType.LocalRotate: + case DOTweenAnimationType.Scale: + _src.endValueV3 = Vector3.zero; + _src.endValueFloat = 0; + _src.optionalBool0 = _src.animationType == DOTweenAnimationType.Scale; + break; + case DOTweenAnimationType.UIWidthHeight: + _src.endValueV3 = Vector3.zero; + _src.endValueFloat = 0; + _src.optionalBool0 = _src.animationType == DOTweenAnimationType.UIWidthHeight; + break; + case DOTweenAnimationType.Color: + case DOTweenAnimationType.Fade: + _isLightSrc = targetGO.GetComponent() != null; + _src.endValueFloat = 0; + break; + case DOTweenAnimationType.Text: + _src.optionalBool0 = true; + break; + case DOTweenAnimationType.PunchPosition: + case DOTweenAnimationType.PunchRotation: + case DOTweenAnimationType.PunchScale: + _src.endValueV3 = _src.animationType == DOTweenAnimationType.PunchRotation ? new Vector3(0, 180, 0) : Vector3.one; + _src.optionalFloat0 = 1; + _src.optionalInt0 = 10; + _src.optionalBool0 = false; + break; + case DOTweenAnimationType.ShakePosition: + case DOTweenAnimationType.ShakeRotation: + case DOTweenAnimationType.ShakeScale: + _src.endValueV3 = _src.animationType == DOTweenAnimationType.ShakeRotation ? new Vector3(90, 90, 90) : Vector3.one; + _src.optionalInt0 = 10; + _src.optionalFloat0 = 90; + _src.optionalBool0 = false; + break; + case DOTweenAnimationType.CameraAspect: + case DOTweenAnimationType.CameraFieldOfView: + case DOTweenAnimationType.CameraOrthoSize: + _src.endValueFloat = 0; + break; + case DOTweenAnimationType.CameraPixelRect: + case DOTweenAnimationType.CameraRect: + _src.endValueRect = new Rect(0, 0, 0, 0); + break; + } + } + if (_src.animationType == DOTweenAnimationType.None) { + _src.isValid = false; + if (GUI.changed) EditorUtility.SetDirty(_src); + return; + } + + if (_refreshRequired || prevAnimType != _src.animationType || ComponentsChanged()) { + _refreshRequired = false; + _src.isValid = Validate(targetGO); + // See if we need to choose between multiple targets +#if true // UI_MARKER + if (_src.animationType == DOTweenAnimationType.Fade && targetGO.GetComponent() != null && targetGO.GetComponent() != null) { + _chooseTargetMode = ChooseTargetMode.BetweenCanvasGroupAndImage; + // Reassign target and forcedTargetType if lost + if (_src.forcedTargetType == TargetType.Unset) _src.forcedTargetType = _src.targetType; + switch (_src.forcedTargetType) { + case TargetType.CanvasGroup: + _src.target = targetGO.GetComponent(); + break; + case TargetType.Image: + _src.target = targetGO.GetComponent(); + break; + } + } else { +#endif + _chooseTargetMode = ChooseTargetMode.None; + _src.forcedTargetType = TargetType.Unset; +#if true // UI_MARKER + } +#endif + } + + if (!_src.isValid) { + GUI.color = Color.red; + GUILayout.BeginVertical(GUI.skin.box); + GUILayout.Label("No valid Component was found for the selected animation", EditorGUIUtils.wordWrapLabelStyle); + GUILayout.EndVertical(); + GUI.color = Color.white; + if (GUI.changed) EditorUtility.SetDirty(_src); + return; + } + +#if true // UI_MARKER + // Special cases in which multiple target types could be used (set after validation) + if (_chooseTargetMode == ChooseTargetMode.BetweenCanvasGroupAndImage && _src.forcedTargetType != TargetType.Unset) { + FadeTargetType fadeTargetType = (FadeTargetType)Enum.Parse(typeof(FadeTargetType), _src.forcedTargetType.ToString()); + TargetType prevTargetType = _src.forcedTargetType; + _src.forcedTargetType = (TargetType)Enum.Parse(typeof(TargetType), EditorGUILayout.EnumPopup(_src.animationType + " Target", fadeTargetType).ToString()); + if (_src.forcedTargetType != prevTargetType) { + // Target type change > assign correct target + switch (_src.forcedTargetType) { + case TargetType.CanvasGroup: + _src.target = targetGO.GetComponent(); + break; + case TargetType.Image: + _src.target = targetGO.GetComponent(); + break; + } + } + } +#endif + + GUILayout.BeginHorizontal(); + _src.duration = EditorGUILayout.FloatField("Duration", _src.duration); + if (_src.duration < 0) _src.duration = 0; + _src.isSpeedBased = DeGUILayout.ToggleButton(_src.isSpeedBased, new GUIContent("SpeedBased", "If selected, the duration will count as units/degree x second"), DeGUI.styles.button.tool, GUILayout.Width(75)); + GUILayout.EndHorizontal(); + _src.delay = EditorGUILayout.FloatField("Delay", _src.delay); + if (_src.delay < 0) _src.delay = 0; + _src.isIndependentUpdate = EditorGUILayout.Toggle("Ignore TimeScale", _src.isIndependentUpdate); + _src.easeType = EditorGUIUtils.FilteredEasePopup(_src.easeType); + if (_src.easeType == Ease.INTERNAL_Custom) { + _src.easeCurve = EditorGUILayout.CurveField(" Ease Curve", _src.easeCurve); + } + _src.loops = EditorGUILayout.IntField(new GUIContent("Loops", "Set to -1 for infinite loops"), _src.loops); + if (_src.loops < -1) _src.loops = -1; + if (_src.loops > 1 || _src.loops == -1) + _src.loopType = (LoopType)EditorGUILayout.EnumPopup(" Loop Type", _src.loopType); + _src.id = EditorGUILayout.TextField("ID", _src.id); + + bool canBeRelative = true; + // End value and eventual specific options + switch (_src.animationType) { + case DOTweenAnimationType.Move: + case DOTweenAnimationType.LocalMove: + GUIEndValueV3(targetGO, _src.animationType == DOTweenAnimationType.Move); + _src.optionalBool0 = EditorGUILayout.Toggle(" Snapping", _src.optionalBool0); + canBeRelative = !_src.useTargetAsV3; + break; + case DOTweenAnimationType.Rotate: + case DOTweenAnimationType.LocalRotate: + bool isRigidbody2D = DOTweenModuleUtils.Physics.HasRigidbody2D(_src); + if (isRigidbody2D) GUIEndValueFloat(); + else { + GUIEndValueV3(targetGO); + _src.optionalRotationMode = (RotateMode)EditorGUILayout.EnumPopup(" Rotation Mode", _src.optionalRotationMode); + } + break; + case DOTweenAnimationType.Scale: + if (_src.optionalBool0) GUIEndValueFloat(); + else GUIEndValueV3(targetGO); + _src.optionalBool0 = EditorGUILayout.Toggle("Uniform Scale", _src.optionalBool0); + break; + case DOTweenAnimationType.UIWidthHeight: + if (_src.optionalBool0) GUIEndValueFloat(); + else GUIEndValueV2(); + _src.optionalBool0 = EditorGUILayout.Toggle("Uniform Scale", _src.optionalBool0); + break; + case DOTweenAnimationType.Color: + GUIEndValueColor(); + canBeRelative = false; + break; + case DOTweenAnimationType.Fade: + GUIEndValueFloat(); + if (_src.endValueFloat < 0) _src.endValueFloat = 0; + if (!_isLightSrc && _src.endValueFloat > 1) _src.endValueFloat = 1; + canBeRelative = false; + break; + case DOTweenAnimationType.Text: + GUIEndValueString(); + _src.optionalBool0 = EditorGUILayout.Toggle("Rich Text Enabled", _src.optionalBool0); + _src.optionalScrambleMode = (ScrambleMode)EditorGUILayout.EnumPopup("Scramble Mode", _src.optionalScrambleMode); + _src.optionalString = EditorGUILayout.TextField(new GUIContent("Custom Scramble", "Custom characters to use in case of ScrambleMode.Custom"), _src.optionalString); + break; + case DOTweenAnimationType.PunchPosition: + case DOTweenAnimationType.PunchRotation: + case DOTweenAnimationType.PunchScale: + GUIEndValueV3(targetGO); + canBeRelative = false; + _src.optionalInt0 = EditorGUILayout.IntSlider(new GUIContent(" Vibrato", "How much will the punch vibrate"), _src.optionalInt0, 1, 50); + _src.optionalFloat0 = EditorGUILayout.Slider(new GUIContent(" Elasticity", "How much the vector will go beyond the starting position when bouncing backwards"), _src.optionalFloat0, 0, 1); + if (_src.animationType == DOTweenAnimationType.PunchPosition) _src.optionalBool0 = EditorGUILayout.Toggle(" Snapping", _src.optionalBool0); + break; + case DOTweenAnimationType.ShakePosition: + case DOTweenAnimationType.ShakeRotation: + case DOTweenAnimationType.ShakeScale: + GUIEndValueV3(targetGO); + canBeRelative = false; + _src.optionalInt0 = EditorGUILayout.IntSlider(new GUIContent(" Vibrato", "How much will the shake vibrate"), _src.optionalInt0, 1, 50); + _src.optionalFloat0 = EditorGUILayout.Slider(new GUIContent(" Randomness", "The shake randomness"), _src.optionalFloat0, 0, 90); + if (_src.animationType == DOTweenAnimationType.ShakePosition) _src.optionalBool0 = EditorGUILayout.Toggle(" Snapping", _src.optionalBool0); + break; + case DOTweenAnimationType.CameraAspect: + case DOTweenAnimationType.CameraFieldOfView: + case DOTweenAnimationType.CameraOrthoSize: + GUIEndValueFloat(); + canBeRelative = false; + break; + case DOTweenAnimationType.CameraBackgroundColor: + GUIEndValueColor(); + canBeRelative = false; + break; + case DOTweenAnimationType.CameraPixelRect: + case DOTweenAnimationType.CameraRect: + GUIEndValueRect(); + canBeRelative = false; + break; + } + + // Final settings + if (canBeRelative) _src.isRelative = EditorGUILayout.Toggle(" Relative", _src.isRelative); + + // Events + AnimationInspectorGUI.AnimationEvents(this, _src); + } + EditorGUI.EndDisabledGroup(); + + if (GUI.changed) EditorUtility.SetDirty(_src); + } + + #endregion + + #region Methods + + // Returns TRUE if the Component layout on the src gameObject changed (a Component was added or removed) + bool ComponentsChanged() + { + int prevTotComponentsOnSrc = _totComponentsOnSrc; + _totComponentsOnSrc = _src.gameObject.GetComponents().Length; + return prevTotComponentsOnSrc != _totComponentsOnSrc; + } + + // Checks if a Component that can be animated with the given animationType is attached to the src + bool Validate(GameObject targetGO) + { + if (_src.animationType == DOTweenAnimationType.None) return false; + + Component srcTarget; + // First check for external plugins +#if false // TK2D_MARKER + if (_Tk2dAnimationTypeToComponent.ContainsKey(_src.animationType)) { + foreach (Type t in _Tk2dAnimationTypeToComponent[_src.animationType]) { + srcTarget = targetGO.GetComponent(t); + if (srcTarget != null) { + _src.target = srcTarget; + _src.targetType = DOTweenAnimation.TypeToDOTargetType(t); + return true; + } + } + } +#endif +#if false // TEXTMESHPRO_MARKER + if (_TMPAnimationTypeToComponent.ContainsKey(_src.animationType)) { + foreach (Type t in _TMPAnimationTypeToComponent[_src.animationType]) { + srcTarget = targetGO.GetComponent(t); + if (srcTarget != null) { + _src.target = srcTarget; + _src.targetType = DOTweenAnimation.TypeToDOTargetType(t); + return true; + } + } + } +#endif + // Then check for regular stuff + if (_AnimationTypeToComponent.ContainsKey(_src.animationType)) { + foreach (Type t in _AnimationTypeToComponent[_src.animationType]) { + srcTarget = targetGO.GetComponent(t); + if (srcTarget != null) { + _src.target = srcTarget; + _src.targetType = DOTweenAnimation.TypeToDOTargetType(t); + return true; + } + } + } + return false; + } + + DOTweenAnimationType AnimationToDOTweenAnimationType(string animation) + { + if (_datString == null) _datString = Enum.GetNames(typeof(DOTweenAnimationType)); + animation = animation.Replace("/", ""); + return (DOTweenAnimationType)(Array.IndexOf(_datString, animation)); + } + int DOTweenAnimationTypeToPopupId(DOTweenAnimationType animation) + { + return Array.IndexOf(_animationTypeNoSlashes, animation.ToString()); + } + + #endregion + + #region GUI Draw Methods + + void GUIEndValueFloat() + { + GUILayout.BeginHorizontal(); + GUIToFromButton(); + _src.endValueFloat = EditorGUILayout.FloatField(_src.endValueFloat); + GUILayout.EndHorizontal(); + } + + void GUIEndValueColor() + { + GUILayout.BeginHorizontal(); + GUIToFromButton(); + _src.endValueColor = EditorGUILayout.ColorField(_src.endValueColor); + GUILayout.EndHorizontal(); + } + + void GUIEndValueV3(GameObject targetGO, bool optionalTransform = false) + { + GUILayout.BeginHorizontal(); + GUIToFromButton(); + if (_src.useTargetAsV3) { + Transform prevT = _src.endValueTransform; + _src.endValueTransform = EditorGUILayout.ObjectField(_src.endValueTransform, typeof(Transform), true) as Transform; + if (_src.endValueTransform != prevT && _src.endValueTransform != null) { +#if true // UI_MARKER + // Check that it's a Transform for a Transform or a RectTransform for a RectTransform + if (targetGO.GetComponent() != null) { + if (_src.endValueTransform.GetComponent() == null) { + EditorUtility.DisplayDialog("DOTween Pro", "For Unity UI elements, the target must also be a UI element", "Ok"); + _src.endValueTransform = null; + } + } else if (_src.endValueTransform.GetComponent() != null) { + EditorUtility.DisplayDialog("DOTween Pro", "You can't use a UI target for a non UI object", "Ok"); + _src.endValueTransform = null; + } +#endif + } + } else { + _src.endValueV3 = EditorGUILayout.Vector3Field("", _src.endValueV3, GUILayout.Height(16)); + } + if (optionalTransform) { + if (GUILayout.Button(_src.useTargetAsV3 ? "target" : "value", EditorGUIUtils.sideBtStyle, GUILayout.Width(44))) _src.useTargetAsV3 = !_src.useTargetAsV3; + } + GUILayout.EndHorizontal(); +#if true // UI_MARKER + if (_src.useTargetAsV3 && _src.endValueTransform != null && _src.target is RectTransform) { + EditorGUILayout.HelpBox("NOTE: when using a UI target, the tween will be created during Start instead of Awake", MessageType.Info); + } +#endif + } + + void GUIEndValueV2() + { + GUILayout.BeginHorizontal(); + GUIToFromButton(); + _src.endValueV2 = EditorGUILayout.Vector2Field("", _src.endValueV2, GUILayout.Height(16)); + GUILayout.EndHorizontal(); + } + + void GUIEndValueString() + { + GUILayout.BeginHorizontal(); + GUIToFromButton(); + _src.endValueString = EditorGUILayout.TextArea(_src.endValueString, EditorGUIUtils.wordWrapTextArea); + GUILayout.EndHorizontal(); + } + + void GUIEndValueRect() + { + GUILayout.BeginHorizontal(); + GUIToFromButton(); + _src.endValueRect = EditorGUILayout.RectField(_src.endValueRect); + GUILayout.EndHorizontal(); + } + + void GUIToFromButton() + { + if (GUILayout.Button(_src.isFrom ? "FROM" : "TO", EditorGUIUtils.sideBtStyle, GUILayout.Width(90))) _src.isFrom = !_src.isFrom; + GUILayout.Space(16); + } + + #endregion + } +} diff --git a/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs.meta b/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs.meta new file mode 100644 index 00000000..a3905ce2 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/Editor/DOTweenAnimationInspector.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e0203fd81362bab4d842d87ad09ee76e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs b/Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs new file mode 100644 index 00000000..8e1d35b4 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs @@ -0,0 +1,255 @@ +// Author: Daniele Giardini - http://www.demigiant.com +// Created: 2015/03/12 16:03 + +using System; +using System.Collections.Generic; +using DG.DemiEditor; +using DG.DemiLib; +using DG.Tweening; +using DG.Tweening.Core; +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; +using Object = UnityEngine.Object; + +namespace DG.DOTweenEditor +{ + public static class DOTweenPreviewManager + { + static bool _previewOnlyIfSetToAutoPlay = true; + static readonly Dictionary _AnimationToTween = new Dictionary(); + static readonly List _TmpKeys = new List(); + + #region Public Methods & GUI + + /// + /// Returns TRUE if its actually previewing animations + /// + public static bool PreviewGUI(DOTweenAnimation src) + { + if (EditorApplication.isPlaying) return false; + + Styles.Init(); + + bool isPreviewing = _AnimationToTween.Count > 0; + bool isPreviewingThis = isPreviewing && _AnimationToTween.ContainsKey(src); + + // Preview in editor + GUI.backgroundColor = isPreviewing + ? new DeSkinColor(new Color(0.49f, 0.8f, 0.86f), new Color(0.15f, 0.26f, 0.35f)) + : new DeSkinColor(Color.white, new Color(0.13f, 0.13f, 0.13f)); + GUILayout.BeginVertical(Styles.previewBox); + DeGUI.ResetGUIColors(); + GUILayout.BeginHorizontal(); + GUILayout.Label("Preview Mode - Experimental", Styles.previewLabel); + _previewOnlyIfSetToAutoPlay = DeGUILayout.ToggleButton( + _previewOnlyIfSetToAutoPlay, + new GUIContent("AutoPlay only", "If toggled only previews animations that have AutoPlay turned ON"), + Styles.btOption + ); + GUILayout.EndHorizontal(); + GUILayout.Space(1); + // Preview - Play + GUILayout.BeginHorizontal(); + EditorGUI.BeginDisabledGroup( + isPreviewingThis || src.animationType == DOTweenAnimationType.None + || !src.isActive || _previewOnlyIfSetToAutoPlay && !src.autoPlay + ); + if (GUILayout.Button("► Play", Styles.btPreview)) { + if (!isPreviewing) StartupGlobalPreview(); + AddAnimationToGlobalPreview(src); + } + EditorGUI.EndDisabledGroup(); + EditorGUI.BeginDisabledGroup(isPreviewing); + if (GUILayout.Button("► Play All on GameObject", Styles.btPreview)) { + if (!isPreviewing) StartupGlobalPreview(); + DOTweenAnimation[] anims = src.gameObject.GetComponents(); + foreach (DOTweenAnimation anim in anims) AddAnimationToGlobalPreview(anim); + } + if (GUILayout.Button("► Play All in Scene", Styles.btPreview)) { + if (!isPreviewing) StartupGlobalPreview(); + DOTweenAnimation[] anims = Object.FindObjectsOfType(); + foreach (DOTweenAnimation anim in anims) AddAnimationToGlobalPreview(anim); + } + EditorGUI.EndDisabledGroup(); + GUILayout.EndHorizontal(); + // Preview - Stop + GUILayout.BeginHorizontal(); + EditorGUI.BeginDisabledGroup(!isPreviewingThis); + if (GUILayout.Button("■ Stop", Styles.btPreview)) { + if (_AnimationToTween.ContainsKey(src)) StopPreview(_AnimationToTween[src].tween); + } + EditorGUI.EndDisabledGroup(); + EditorGUI.BeginDisabledGroup(!isPreviewing); + if (GUILayout.Button("■ Stop All on GameObject", Styles.btPreview)) { + StopPreview(src.gameObject); + } + if (GUILayout.Button("■ Stop All in Scene", Styles.btPreview)) { + StopAllPreviews(); + } + EditorGUI.EndDisabledGroup(); + GUILayout.EndHorizontal(); + if (isPreviewing) { + int playingTweens = 0; + int completedTweens = 0; + int pausedTweens = 0; + foreach (KeyValuePair kvp in _AnimationToTween) { + Tween t = kvp.Value.tween; + if (t.IsPlaying()) playingTweens++; + else if (t.IsComplete()) completedTweens++; + else pausedTweens++; + } + GUILayout.Label("Playing Tweens: " + playingTweens, Styles.previewStatusLabel); + GUILayout.Label("Completed Tweens: " + completedTweens, Styles.previewStatusLabel); +// GUILayout.Label("Paused Tweens: " + playingTweens); + } + GUILayout.EndVertical(); + + return isPreviewing; + } + +#if !(UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5) + public static void StopAllPreviews(PlayModeStateChange state) + { + StopAllPreviews(); + } +#endif + + public static void StopAllPreviews() + { + _TmpKeys.Clear(); + foreach (KeyValuePair kvp in _AnimationToTween) { + _TmpKeys.Add(kvp.Key); + } + StopPreview(_TmpKeys); + _TmpKeys.Clear(); + _AnimationToTween.Clear(); + + DOTweenEditorPreview.Stop(); +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 + UnityEditor.EditorApplication.playmodeStateChanged -= StopAllPreviews; +#else + UnityEditor.EditorApplication.playModeStateChanged -= StopAllPreviews; +#endif +// EditorApplication.playmodeStateChanged -= StopAllPreviews; + + InternalEditorUtility.RepaintAllViews(); + } + +#endregion + +#region Methods + + static void StartupGlobalPreview() + { + DOTweenEditorPreview.Start(); +#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 + UnityEditor.EditorApplication.playmodeStateChanged += StopAllPreviews; +#else + UnityEditor.EditorApplication.playModeStateChanged += StopAllPreviews; +#endif +// EditorApplication.playmodeStateChanged += StopAllPreviews; + } + + static void AddAnimationToGlobalPreview(DOTweenAnimation src) + { + if (!src.isActive) return; // Ignore sources whose tweens have been set to inactive + if (_previewOnlyIfSetToAutoPlay && !src.autoPlay) return; + + Tween t = src.CreateEditorPreview(); + _AnimationToTween.Add(src, new TweenInfo(src, t, src.isFrom)); + // Tween setup + DOTweenEditorPreview.PrepareTweenForPreview(t); + } + + static void StopPreview(GameObject go) + { + _TmpKeys.Clear(); + foreach (KeyValuePair kvp in _AnimationToTween) { + if (kvp.Key.gameObject != go) continue; + _TmpKeys.Add(kvp.Key); + } + StopPreview(_TmpKeys); + _TmpKeys.Clear(); + + if (_AnimationToTween.Count == 0) StopAllPreviews(); + else InternalEditorUtility.RepaintAllViews(); + } + + static void StopPreview(Tween t) + { + TweenInfo tInfo = null; + foreach (KeyValuePair kvp in _AnimationToTween) { + if (kvp.Value.tween != t) continue; + tInfo = kvp.Value; + _AnimationToTween.Remove(kvp.Key); + break; + } + if (tInfo == null) { + Debug.LogWarning("DOTween Preview ► Couldn't find tween to stop"); + return; + } + if (tInfo.isFrom) tInfo.tween.Complete(); + else tInfo.tween.Rewind(); + tInfo.tween.Kill(); + EditorUtility.SetDirty(tInfo.animation); // Refresh views + + if (_AnimationToTween.Count == 0) StopAllPreviews(); + else InternalEditorUtility.RepaintAllViews(); + } + + // Stops while iterating inversely, which deals better with tweens that overwrite each other + static void StopPreview(List keys) + { + for (int i = keys.Count - 1; i > -1; --i) { + DOTweenAnimation anim = keys[i]; + TweenInfo tInfo = _AnimationToTween[anim]; + if (tInfo.isFrom) tInfo.tween.Complete(); + else tInfo.tween.Rewind(); + tInfo.tween.Kill(); + EditorUtility.SetDirty(anim); // Refresh views + _AnimationToTween.Remove(anim); + } + } + +#endregion + + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + // ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████ + // █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ + + class TweenInfo + { + public DOTweenAnimation animation; + public Tween tween; + public bool isFrom; + public TweenInfo(DOTweenAnimation animation, Tween tween, bool isFrom) + { + this.animation = animation; + this.tween = tween; + this.isFrom = isFrom; + } + } + + static class Styles + { + static bool _initialized; + + public static GUIStyle previewBox, previewLabel, btOption, btPreview, previewStatusLabel; + + public static void Init() + { + if (_initialized) return; + + _initialized = true; + + previewBox = new GUIStyle(GUI.skin.box).Clone().Padding(1, 1, 0, 3) + .Background(DeStylePalette.squareBorderCurved_darkBorders).Border(7, 7, 7, 7); + previewLabel = new GUIStyle(GUI.skin.label).Clone(10, FontStyle.Bold).Padding(1, 0, 3, 0).Margin(3, 6, 0, 0).StretchWidth(false); + btOption = DeGUI.styles.button.bBlankBorderCompact.MarginBottom(2).MarginRight(4); + btPreview = EditorStyles.miniButton.Clone(Format.RichText); + previewStatusLabel = EditorStyles.miniLabel.Clone().Padding(4, 0, 0, 0).Margin(0); + } + } + } +} diff --git a/Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs.meta b/Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs.meta new file mode 100644 index 00000000..1586a483 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/Editor/DOTweenPreviewManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 22292a5f27a9a644ba9e6ad1bf863531 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.XML b/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.XML new file mode 100644 index 00000000..ad80aef0 --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.XML @@ -0,0 +1,18 @@ + + + + DOTweenProEditor + + + + + Custom colors + + + + + Needs to be overridden in order to initialize new styles added from inherited classes + + + + diff --git a/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.XML.meta b/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.XML.meta new file mode 100644 index 00000000..5328cb8e --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.XML.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 753a4f4ed73b17143923101226957756 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll b/Assets/Demigiant/DOTweenPro/Editor/DOTweenProEditor.dll new file mode 100644 index 0000000000000000000000000000000000000000..4253b6cf83f12bc50f71a70461c27741b8046261 GIT binary patch literal 28672 zcmeHwdw3kxk#BWR&r_q3X7sZ0Ym6U^tp~DYFaiw7l57j)r~DG&C?lyYjXj!{dq%c} zA|peH!^Yg;Bu+59ghzk{@*spIJd$i6Pe=j@xnUD$!v+Z4kPX~~Y?g#9f%~gE-7_P} zB-woTyL z<-fw!0Tl^-_Ps)sY*JeBwm!Zm_d8U0D$@<1KAz%~GO@ zMxB;p7>pOy$4&!nWg^DJa}pJ}gnSODS1#3kRwYp5Or%Jc{#YNIRp>HbPhbU$dnkle z#od@tkz-hl>!Bx|>FIi+8WbZKR~u(>^+YN7IMUXjsot+w^Spc@odMW}xWm>=W;>th z9V}+)U{5c?&dXyL6k(U;u?vf^Fhz&Mq9QD8#KA5u!XC(D&tPoLI3zRF+yZny=7AN6 z>WMir707DT&$W-EPXY=ImFRx^X8`8Su%MXGIJd|2x2iC)S%CyBJ%lM-bP@LsCFXL0 zX@u&Q0!uA|wf~6jhvL9iU&jWMfF`(8Ts1G%$5@``ThT$U7TJmw8gvv|8_;WNc&VXU zWh!71`X1IpOF&(r8ho@&|0)mASXQQyM=hl^|)%)!`QLpvdpT)&~i1FtD z?}*vVJfWQ6ak*RCW%9C`L{5A~cM(6xgpub)2aub#Dd2{yukq@h|Ak)CmN>(5W;z zO+x!>Bd>~fbaDvRpgPX5GXt(-wTM=fD~td|6b{{5(Ameq(*7ihQ_ZwS{A*D)7<_bf z0+Bj&TSBJIT}5ui%09!J7pwzK#ey;H49L|}2v(qQ=q_gNm!KHuS`l*IqNc^ph)snN zJ3-`(xSl&P>`-k4m3Nvv=)dK~pt-u~d(NTlNc@Ptt)kyZ3jWER_$=w0cf02QE&Y` z`&E#>bL1&9i!ts}S7KNAXn00qCjjN|9|Zi4@xu|I8`O?4_5+|VLLZ$sMH38+u0V+<5V zw!MDX-vSiH_P49R;9aPWGwclW6OcN?_W*ko3Y@g&43Be*L;vdn{kxeS3pI(J;c;$p z=)-|L|0L7Lr_eJz&Ml4*Ty1`ku#u`QlHm$p)K}Bpj*vdaEDY0& z9^X3+Y}KafD6S9K5yp;ld+koA-vf+Ebt!nnG0sv(ww}1*sdm6UfC`LyaxnP6Thx^HiM2EFg};NnFzz27Cv@ z1XBv%dy`x_Xfx;o~6t4c>Q8TBVdfF0+i#C~r7G1~37P@HP7b2uLWVI798 z!mx>h0Gx?4m%6i0wM{2Rg=#jZOIM&;9~4X-;*U(LmbHJ2N}YUlLA|D0vd*Q7szUKk zj4=~51u^c@ibg+W{Ctk2s7imerNu`Bm6pASMGEL+H5j=b1Y=N@VU3G49JIzTZpb=> zq5%_%fbrx!J8>nNocR^%EL`n1p9G3h(SsBDfky@TJaa>KgQ|FrvoT`%npv z9YJ|1p!W-OEkip2{*8biaKWRf>@=~@$q~(GT?csVf1q%feh}3Pf6Sji{0dzLNhdCJ zh>o3t=tE4@9rb2EjEeOU6csqGi6R;{sY=n@MENz{XP#YzQ$#g8qdx0658%S%tX4pL z8E1yI#l1lNQAIs@Wox>p^>dFkOMTYI(4}r|(cns;Wh?XqM#u}ksE9&|W8J`mB_NA0 z&(7^LMSwFk48$fgv#A+JLHLck7jjf;#^R992WwviOjRk$Q&SO$2I_`gSE${sk8!`c z4L<7xI@L6_JBV_(iyy43nRT@@f^cdIDAsk(3>+^~$GX~brx6D|<#PHM06!UtR z6*~o3GP+0yqNS4Rir_gH!vmFHMT6Fj5UnB<4UNGcK+Y1prB##^b#&UqXe*p7a%>;E zocLQ*PJi+{oflkMQR;N7UOqR^T$IeoM7`Hv(_O3i-!hPnEvok?{*F1U zbO_OQ=B()g)a+FL1obhaf=5gw^RVMCb+>X)UyiO+&@MMX3gt%#P?`w!j6<9H8!4wuCJD5AldofW}o z(0}1)-hBIQhkc4$*?1fn8AqtT_;f$^4@~g@irO=ZMfyB2?8OBgFh&UVF^&>-ycX|V2wV<<0Tw84lJ=_sk$%N#!HBg$H{Yb)Uh!WcvJ1d#Dgr+95udl zL#Pp91dwKfa|n(u*voao#w8y&F~IuqmZ@S$L&Vtw#u-0*#4> zFmnA22mdeteXNr4kDyw&5R=Py7-xDH!Ia}nShKVmQ^Y+;AH5q_gY%0o2pddK`KY5- zSaHZBQ6%K`NjNBpX^AfaYoG~HVP)Lo^BaZO;7@!>8h7trjF9n03T=}T< z!nuhYfEmJB4JNKn^l<(d#23RBQ?t)#-oKLxe(5Hvqg%PmQxJk#{B=-|vz${e4 z7xEPn!mj~YT~Z5w34_?5MR4<3UkB1(v$MqSTmEy^fIF5m(UScJ^Y|tTnU6ug#8^Ha zOIfQJsa_=+N|C9^mMNnq9!K92e_hP4k8$i?9z=x$=`w9;Rk*sec0`S*_R}#AwVcyc zHFQUfx^0u%bZ+xT4ga#m7@egLR5f@4wVKnH+m#?yk_9aVX;Zl#^-e+t!w5d5LErKt zPBPIn*X1T#x@_l@dcZ%tbd_30HzJE_pTN|LEu*lpj(=-P(^z*Nq4Mx=1D@yf9^=rL z{SFsTqTr=R3s2DE)p8Oqk8>JefA!L7kOxNstb<;)C?xas;mR??C(=9X^&sf5$2vD~ z#|m;4gq1MTd_4%A6&%E%bx6Y4hzev*BXf`d;0iCQI0S4-b-1?9p<*Nwyu29(BzE{@ z3zW?^P_r`}@Gt+KqETgGEYY7tr;0{{kY>oIh@Ti(4U$a;S>}2U8iT$F1a7=&C zwdl5J!|9tYshD}gV_2J6Js9E z4H>aqXCD6QWnrIvb)L#+UyFJ`PGLtokv{~+c%Dx618y~O5;ev5)G{CU*^d>NT0aJP z;-67075#b%Nu+%A#7}@7hiMx+>+Zs$;>Hu*7iOR3W~>ArqG7)Yjbn0#p8Y9T*|Xf3 zRpmx79Bx257tw9$;`|{;?TwfS!L*_=D$^3rfdekj;SpURrsCOJexEPu z<&j9Hx^kk9IC3g7V+vV`&wsXFwbbWdfs~_K@)Z;FN61F3QO_q6e1iv?GV(Vg#u&0Z zNQXi=MoJU*vsy$1MEIC5c;m>K=u>B~*Gu^IFaOut@<2^DPDMifG6Y;4sBU~k&CQ?@ z>;z@3b3;7~j2iC4z*|-)egSHE7^r%W{i{q*IN9G8-7!-^AFai}PEN2HWOpz;&K(>< zg{lD_k?(>%##_^btd}t}$A1Z0Ri82b3hG$(N8M*>`99Ted5|~?$n?&%#+V)_9>&`z zA(;It3g?z$p7>~8LBvK_(c>4?}$u+yoo((hqeQ z2|fkw*l$B($?hEWUjPms&)BbVu}e!ar8y|ny|*~nj9r9=X;0Lc8l7I_PM_jVkNgFl zm>Qja!<}A>pp&QU&yU2^a>sJAxc|mX_M*Q%`WG-^YK;6_?(|*m^wM9@iK)@)-?`I{ za&$_e_;ZS3YIJ&?J8g=hQ$LD7*NLfRj%pd|81Oqt4%hc(EFeTVN+sT3G+w0t=hc!Xj}C zEN)5*YmQqMO>1HGaLeLpEvy4>Ib%wTGpRSwyjYGHOCjTg^7N&z>*59K;d(=%CngvY zCmBOfG{)e$M&b{^Nj5j5x;pV60G7g^%K3V+o&}kY-vGc~^QMDB$n%Xa5!4?U)sThI zz6qd>rOQ3`<5<_kTioy&J@GcK5Q})bbBZk9SqWt|6yrR+GZde*ZUzm1bhSu2NX9%& zY%nom1&F<aDiDStNXX}7s=yZ_2pz-x#kMLi*yrD2Lw1hI z^2bLhe`A@C{z=Nu``(I_(I&9KIoP+Q#7CWeF6*WIl9bm>Wkt2~9-B$W>!$$|`MkFMkqK_LfdLhJ^bHiIoV)QPJ zF&_dZLJ!C84@PJ~#gT}QdT0+ams>zzO)neQ1gfdQYnI38>=@JkgYY>c%Jpxf^bvwM zp5+q6(}J@TS{4mqawqzk&hc8x;A>m8=?-Z)T^yN9yHLjHJcIi-c&-V=$d(bSAVW318u$!2)J2a(s;RR4h}TC?mu)FI zo!%~cfnxN!$oVSf6{8=Ou!P_8uzv23Z7H|NgJY{jvrtCptT4~_!vUUet@P@_D0As` zVj2FvjLR2e7e`K~NVy5h*~XsGTsjJTgnk|4(f`@Yvc&@|)gMGx-$&`A?|FGO@5Q=A z=t~Au&c-aNX-$kZvq$D0M&A&nWOnCaEh2O+@G)xha{Vmr2u2wLCPD|w7(ZOeGg^q& ztF`_Tww$Z5Qa;)v>-9SH9HF~}{$rK*2j|iW$Qh%jMGuFe$+>i4InSsj%J^?%9oa6w z!UgP>t+brNh8bC(&eLnrIln?3W zBicQneFFHV;NK(2J%YX(JtgISaMLI$<$5W-dM7ZqmBi6&cFDb<9}O^Ox0Kb=`gspy zsw(eC>#ER$C{HUd0sRxPFTf55O1bp`?aSV3`f~Z#P~KPeIPmRN-$A)e%8--|QqGd{ zjY@9)ij)UKPkR^B!O%0_v*{n{Bsh5K8Lai&;b%ef&G4$ZT`n`ha({K)*elVZ#`39A149&&{ zL3Ehj#E3fGutGuS$6oO2^s)o}L3>Cy=sjntHmmd(UV~nCpkKmo{PcsfRogIl`so~r z_uaZZFfrBu^CU5o&c9G3iMI>L3yPwMmMi!E+3@@#uY{- zJu8rsvx;7t1pR&zRMN`*6wj(D{c5D`YV1#Qd{wkiAjPwqHVO0%dLin=HuoQs+Bgav z!N#W1E)VaD7vk8gFgkT%Q}fUtv6ZUU$ut|_#TxxI#^oq>UY+g+AJF60ltE28<9`N> zPJ6M5YSb9v`sbxrSVkO;28nGriqc0jQHJ36kC&FyGAWy-Y>~1<%FR-COPNGjMJcK8 zlkx=0(`cE-+(uFN(J^ZE#OXe5Q{_^6o}v{iP?}mZJ*@p*=mP4{4nZ_s~ z=n3tW%B}RYw!xdDYv~333VL3NmhnP8iCjDA(o2|hE!8?}_aD8zhzSF#oO z*`ZF*d^30gGkPPmQro9b=zZF#wiq$+7g||x2sFR1Sc&opBd0yDeKt&3Y2hPW+9y)nU|6QOH_!-_!pt&Qw z4fRpayHTDQSP88@5@zi!33sAygwy&jG_U7`tkf0yX8m5+#!1|gy$S37{g{uQ*ZZs9 zuQ%&Wl@IB&>2G3R)fY+`)aJ#W(u3NN_Xj9HAALxFOaPjq6ErvaYkj6x6?`2Srk|-j z8hu^A50?1{aNZWvJPYaOSODegTA3%P{TwnZq~Dfn6x5QCYPQJmhTa~i^4v%73eQ4W z;fbScElHrf*0T&{4)t59xuV&lc|KQqfhXvBhT1$2(*u>4p!Hs37VuYwH+g1y*#0%o zPdt|b^G8n#<0eA^&(pLAk~~fOP(G&pdztNFTix%O?{O`5%=5f93@>|LYeT7dUI`us zruZQ_2=nLSnPdtdF98z?d+19A;aaBw}a-c(q>3 zr$g_kWY3L-AMvn9eARP|ZjUN!f66nPo(&`C6V22?W8X#n&e)5dH}s{U-$Qb4Jw_9- zv4!+j#hac=(3C-v$4hnNF>O}q9OD=rE?I{S{g;!L{FhS zkA8r%Rq&V4&rt6Y{AE)1QP|%=d+BWd)s&@H|0hs>!r!WmVXWtLF3H0s?xLVvM3>PA z^-pg!ijb7u3aa_CIxZ8NzFt8iqXE3D;aUOZ0jLQw71j@$pdY_Ixl5=kl zGC&>ss2`;lPZh2vQ~#p=P5mbxV}f_n;?I8BSqqq}yw?fAWU4Mc)=v2xLC>ilbwZfj z7f<%_nT)&U6l1Ixev|121sB3xN|4QkF_+8e4ZJV<20f`gVtf~0kziS}W!l~K6j`BO_KHI&SytVvoS#fZsy7&DXGxO;cj%{PCfgb|?cAt>dJYUj zGnU<+!EAZ_A|dk1W51XUQrdNVg@K^SXzbVqV@*h*z`*{xPY}uVN zp#s5e8Oh{QL*~}eVN;DoYi!e8Z|!$MD1sZ;*w&Cku*u4%*s>gO$FNh`Y7GovlrG%l z<4Z2pw|8`FDu;Tus1Ez@%8dd!C{yV&*-p)VS!dO7z_R;y*va7{l%hpUFw=@=4a`&3 z#4Csuw8=`3cBV2WZG$#O+cWS@lQvi=SS@^QO>?>4%x04VGG#Jhn>;<*Hrx+Wl2xpLqYdjd08P;r6U%f8e0$m)!o;T03rmjXX%oE#>dKjLM+d`` zJ203+Tbn5>+cna=DGA~NrT~f)yCAbjrA=Gn9LJNE93p-12s*AENfkkDX79+r0GoY* z0-d*~vh2nMTuU}<4)vy$@ty*0Lm@*+d++on?04pN)6T*>rZ*zs?oJJi*s?QBZ*DWQ zvi_6$s<}yzEoM4-P-@xfoe}2xNBVNp8#sE|se!>$HeqYcj28Mhv4F?KIK8Pf+^Eos zp9=%K-$W#D!Ont8>!8`UcWctd(s95LXOhre*Z>uX2rStFIw^1IN?n1)F>^(bavf=q zd|~5mj#pU;4-&B8;sex^;@CF;6CNnGe%flOrwigEsqCh7a#ToC*W%|Bcx=#88|FT2qY{L6r1}A(tr!#wRtqOGtH2f8l?zH-nX(uR3E`x2- zv@v_aHnK$6WA!3UCd21=ALT$nl>U$&~2beddM*_IP-`hiT2yrkU;QdJ!~$OS#9MQko+XK z6>%}U+p>p*M=lSwXGVr-H6$^U8CPB*Ik-NRk;*7ncvsr%AhKN9Jc3Aq`CA!I6w;|a z@jU8x+!v$v?cHMK6c*9D0Kg=&Iho(~lz9NzP@aqp#CH2w!##*_5LB`>H*bR>I(eIH zX|2iOH6s~CfeuK(WalLr!tQf-VwuN~h3qPinI=WPMd>RKvQWd$j?QZ6OpaP3xsAiT z!%GUY#mrji5dqZ>zj_3E&%os@>Qs0*8x3Kwg zQq_^!Z6SqsjtrgFfaR_Y0-5x_!bF9m3P&UC+L_$8Va}V8UJg^&@Stf+&B-jRVfG#@ znAy+!*CuOtWEj>xGUV3!9ch)3yMWtUCL;EV2_Z{>z48I0E1kj)M+KK?OYIko>gPf# z@~j?7rI{L=M`|F`X7(Wkw8f6Il9F>EUOlpVH;}BIo-ASn)^mL_gIvURr;oj8B$;-R zDic8?!a$2{TL;!ywycTlf4ot`R8`&0Y^f*7gjt2w%5KCz*c zi`Z;S28-jYiz^fdzyh*mb=UOsjY~R7{z9Kro+V3^%5Lo1sUn7Zj&UI6=0#1#M=*B` zn21B65{KO*`MNG7|(_PV%!7aYj*1?M`90 zQYV-c@M^mRJ2U5|(OFWSCn;0bbxH?XZ5?!KSx&jLh~3z;WP1g`7U?O4ozA3vf9zIg_G>ITq^B?s$Lx2B_=!EoRgtKxxz!QW`>icyoO-5?zy#i ze{XQpRuz}BoI9++O@bZ6JSRESAkpXKKWX!VF+MXD0gDG35sAbRgh@WSKh`vAI2F%IBLm}IM^mR4gx|9nP)2iGSLl5Ew^tq>@oYkac~C~hsXC2a5cvr1Evb89od0b{j8L1R)Yh5lVaD|0D`zy$ zq$Q=3Nz#&$cF>*KI9gmich+e(6H7bn01^75qH~CxN}8U;EpTa z+sWV#H-Zn@D5;d;O?b~LiD#!2WoR1>Q$OGw|GIyUOOM-7xJz!)5Uy#oNNW|hPQwb9 zEucAo=d>B{Qe3tI#@SAK*tn_@(7GPCOsRni?c8esm^S=(;?xd&3Op=mAujbS+Iod|KQITt zllhydvovv;HR~u24X_;0&CJR2#UTmLX^`lQ4)n>Qj|rLFQIz~9oeLi4V=TO45Ii4m zoJp;w1w47=_27}gcL05DqKOAoLl#X*8N9eT4)$tEcp+G|InXHK`ydGSN#mad9CLuV zLVJ%)Smd)*@>t2WgaRuv~0-tb2Ae zWpYV}Cu@#ZqYqc6VV8BsyTs{76F2>}1NMqAIO+>?7E&1#tAPE0jmtGSHwI*7B5FaI znoZ{np;X*h@gtbL>s?y34Y2J@gsG{j3sdFktQuV}E`Y91V&&6)TVB907Nh znR&(q;yGmDbL_tZ=*y$V=^(y5D)*6iRni8?iHWn~Xyu5ZBx57yQQ45Fq!T^ZMPSO! zUBK{Yy!dgv%eD-q>n0uA_t3%80A!} zIYWA|U2#At7_qjf;AjOYrnyu_F_oj4MM`Id7M3In3DQ^{H(*g!tLRw;IG2{@u%?v@ zalBPQfkPNu3r#$z43DEDPi`;D$=*5)1+nKAn_IC5yI##ptcKZy8gEdpU~#AIuC^KeC-o|;WfZ#=Ha<>|qrKY+UeYSub)4MWI%|`U) z$js9&!p|=@$Gy~oRyMk#ksReKgLNsU&XFdWHB+%Zd9HMZyA)G5;;FH83wp2{vdrRe zNwqfYVgvZcL1^;Y@ZQHpz%Eu;CpYr5;c|RctLLuMBrW1?JMPcMO*6ZM8}D2l&=LoY zgZRSP=NDRbAks76PPDi?1*ajMj?A1EuyO7O%)1~h-~@%av6S4?b@wyH7$vosqt>99 zlK06JayW#AiXGrky!&Ci1uXZlxS9OG zDto5os5YG`Z(}OHD&ys$I3{yEV2-@tTvz?op1=#EOrH&(9l=daIJMx&B1-UX;J?r5 zN#Kj$N|d%k`8nZ@=~l66uwS!ry5>Z)+R)BwV5PFWYh)>9F{2w1fp_QobQ3L8@sY>l z&6IOR&bgFkxOab^8%MSV#N&+!2efKC=-j-n3GX%R0`1gvg1M~1mm}T*hh_{gd0At$ zQsFr{D(01-F>0i7$XSQlvV3j1)Sv}_95uY~s!^#jE2RUf*eF_TN9pdgG}bOo!)rPM zETvj{i3{B}w+@$?yT{{+v13&1L%p(0la;PABW`20?F9$5^RdwCFu=<= zRoOgE4t*}q;;~(0=8^g6&kmz}RZd?Lc3aVx7s?5JeeXPTwNY}KYJm^C6iYT;@or${ z(Uqfd$VwH)nB#7FaXLjVfDQBAZ=80|?RT!dX>It8(k1jUGUA#Rz)SI(7nNv~!3Y;R z!?AY57oB*<@N2PsLDKcu#7X>T5XJTxaf+E-q`WAA^u;Egm+DKtxE7muI5NW@&|~dY z(Ge{=8Xed5=)_?GHhT$-BZ0UcOGcs-ulf{8kTgxz@IIs##;*_XV;|C)@6#pZ(IU9c ziB0^`@2iS!)1uve<`O-uh2uUgcGw$h$Gg@LTGwXJ;668@I2`1n6z@zzpp*CwiYGFA z_H1vXhMz2XL%`k2^b!074O2TjlezN@4$ol*PjKHwKFETBxhp>S-IEq!GW<*gI*Z_) zOkg32rjRV{;j<$6B_#861P+oX90@Z4n4t_qr-xSsNJEMLxJyeZc~D01Rg40daR4j= z3^G0b27@OC0;fF!rWo06?eN9**|X=&23C*gjO95;qKCJ6d{O-QaBmFkQj*g1$%MZuHgQcr*+H~BI&p27%j@(&41e;g8-N}N zKp3`IT?_&5t;Z?g*o2p0iq~KbqlZUeo6&9x&;Mx}Zkx`cgkkA{iBSTRC3 z6sQF%h>ad4X&A{MFn}Ief^MulUj)IIFt@TLYthY+JrF&7En{{C$pFwD-4%|IS95VfPB!Yr)(SuN%4wF%$!sko;UY%z=aSU34<@2P=0pZ1X7$bbf?}<$u2Ze-% zZf@qlAT6Q5=Sm*PIIJ;3hP!X7H_gvbU3J_eVUKrrzz zs}fEf-5j0xI;Nz;(q;_JN&t2<`|KT<59^(6?(p4E66$RD6HoJEU|pSRAYTg$>BA8W zE<~}z597bUgI8R>eddbi*naR!DUA!A3oH@A#lrB*4i)rZ>%J%qD3-+6#CHgSOx%h} z9N&cuJd8>mzK!@Mc&=Y(%Z`S1Kh`Y(QjzBV_ct{!Uvbv5We9T``Iq4b>G(&~qtT_s?@79I#XAjkaTlv!%;lU+KSg|GpjOq0F9rkYt(lN{*xZe{$Cl0b?5#+Pk8BO zLz^GD8efxWOIKUhF1x4nn&_Pu-FeNGCwu2y2Q}kQqn&$s+uF-}+RXjW$maeY$uFHGY;pLG1cv;Ito1+YnD|2XY--EoopeAJ>ms`DiF30ctEOkS`z%?5tEjX!TM0uTO^ z1^@j)jA2F0z)h;j%22;nhyP8(Gu=9Tciuu&XE3Bbbq1WAw&P^qgR&hrKD%)HZX;~~ z+<|fp>iqeV@vFD^MvD3}hU@qn8&dMGS&^4Ib@$SSiUzKHtXPADoKImLNYdr85!x0? zudQ-+egH zSmRCx=4jGB98CD;ggVV{17|+8@V&PcxOdfrt2*Q;nbeJl1o-m(Cw{=B&id-y=^jb= z?5-XKsyqDd696SQpHGXQqpBwge6JvjarxlFcl!~rAweiFH{bo^+aDWn=KN%-_V8zQs?8`L38X>G>}6Z^UL+;Kldc_$H3J5611w zprOY6m&dLGJ+Ca!!FF^|ka+Tw-|1sEKrei5=FcAd>P(Z{!~Cc;Evv^jYSj~#L76MB z=ww`+?uH)QL|1&jmMtxg=j40{ Demigiant > DOTween Utility Panel) if it doesn't open automatically, then press "Setup DOTween...": this will run the upgrade setup +4) From the Add/Remove Modules panel that opens, activate/deactivate Modules for Unity systems and for external assets (like TextMesh Pro) + +// GET STARTED ////////////////////////////////////////////// + +- After importing a new DOTween update, select DOTween's Utility Panel from the "Tools/Demigiant" menu (if it doesn't open automatically) and press the "Setup DOTween..." button to activate/deactivate Modules. You can also access a Preferences Tab from there to choose default settings for DOTween. + +// VISUAL SCRIPTING (PRO ONLY) +- To animate a gameObject, select it and choose "Add Component > DOTween > DOTween Animation" +- To animate a gameObject along a path, select it and choose "Add Component > DOTween > DOTween Path" + +// SCRIPTING +- In your code, add "using DG.Tweening" to each class where you want to use DOTween. +- You're ready to tween. Check out the links below for full documentation and license info. + + +// LINKS /////////////////////////////////////////////////////// + +DOTween website (documentation, examples, etc): http://dotween.demigiant.com +DOTween license: http://dotween.demigiant.com/license.php +DOTween repository (Google Code): https://code.google.com/p/dotween/ +Demigiant website (documentation, examples, etc): http://www.demigiant.com + +// NOTES ////////////////////////////////////////////////////// + +- DOTween's Utility Panel can be found under "Tools > Demigiant > DOTween Utility Panel" and also contains other useful options, plus a tab to set DOTween's preferences \ No newline at end of file diff --git a/Assets/Demigiant/DOTweenPro/readme.txt.meta b/Assets/Demigiant/DOTweenPro/readme.txt.meta new file mode 100644 index 00000000..17911b4b --- /dev/null +++ b/Assets/Demigiant/DOTweenPro/readme.txt.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: aa8f07903bf128e44a7d0b91a63dedab +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib.meta b/Assets/Demigiant/DemiLib.meta new file mode 100644 index 00000000..c4c3c903 --- /dev/null +++ b/Assets/Demigiant/DemiLib.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c7ab54b72ba0d014b8a0509a78ae4905 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core.meta b/Assets/Demigiant/DemiLib/Core.meta new file mode 100644 index 00000000..c0ae5b68 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 39d96fdd5ea837a438de67025a442b73 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/DemiLib.dll b/Assets/Demigiant/DemiLib/Core/DemiLib.dll new file mode 100644 index 0000000000000000000000000000000000000000..fe47ea8b611f3363a6a8f37197d6a10d275a062b GIT binary patch literal 9728 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 + + + DemiLib + + + + + Set when calling DeGUI.BeginGUI + + + + + Stores a color palette, which can be passed to default DeGUI layouts when calling DeGUI.BeginGUI, + and changed at any time by calling DeGUI.ChangePalette. + You can inherit from this class to create custom color palettes with more hColor options. + + + + + Converts a HEX color to a Unity Color and returns it + + The HEX color, either with or without the initial # (accepts both regular and short format) + + + + Global colors + + + + + Background colors + + + + Editor background color + + + + Content colors + + + + + Extend this to replicate Unity's Scope system with any Unity version. + Thanks to Dmitriy Yukhanov for pointing this out and creating an initial version. + Expand this class to create scopes. + Example: + public class VBoxScope : DeScope + { + public VBoxScope(GUIStyle style) + { + BeginVBox(style); + } + + protected override void CloseScope() + { + EndVBox(); + } + } + Usage: + using (new VBoxScope(myStyle) { + // Do something + } + + + + + Contains both free and pro skins color variations, + and automatically returns the correct one when converted to Color + + + + + Used by DeHierarchy + + + + + Returns a list of all items whose gameObject is NULL, or NULL if there's no missing gameObjects. + + + + + If the item exists sets it, otherwise first creates it and then sets it + + + + + If the item exists sets it, otherwise first creates it and then sets it + + + + + Returns TRUE if the item existed and was removed. + + + + + Returns the customizedItem for the given gameObject, or NULL if none was found + + + + Must be univocal + + + Node position in editor GUI + + + Ids of all forward connected nodes. Length indicates how many forward connections are allowed. + Min length represents available connections from node. + + + + A serializable struct including a min and a max int value + + + + Min value + + + Max value + + + + Creates a new Range + + + + + Returns a random value within this range (min/max included) + + + + + A serializable struct including a min and a max float value + + + + Min value + + + Max value + + + + Creates a new Range + + + + + Returns a random value within this range (min/max included) + + + + diff --git a/Assets/Demigiant/DemiLib/Core/DemiLib.xml.meta b/Assets/Demigiant/DemiLib/Core/DemiLib.xml.meta new file mode 100644 index 00000000..2192b21c --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/DemiLib.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9bf2564c9817bb34988453ae948954d2 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor.meta b/Assets/Demigiant/DemiLib/Core/Editor.meta new file mode 100644 index 00000000..e19b2a1f --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dc7267ba5725bd14bbc006c23f0e8479 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll b/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll new file mode 100644 index 0000000000000000000000000000000000000000..b949eaa3bc61f79aa93bc2abbf5bd55cfd9b372e GIT binary patch literal 132096 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 literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll.meta b/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll.meta new file mode 100644 index 00000000..75149a3c --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.dll.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 202f9ddaf2c1a8a429504f7f3cd7b84f +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.xml b/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.xml new file mode 100644 index 00000000..67e922d8 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.xml @@ -0,0 +1,1488 @@ + + + + DemiEditor + + + + + Utils to use he correct method based on Unity's version + + + + + Encodes to PNG using reflection to use correct method depending if editor is version 2017 or earlier + + + + + Returns the prefab parent by using different code on Unity 2018 or later + + + + + + + File utils + + + + Path slash for AssetDatabase format + + + Path slash to replace for AssetDatabase format + + + Current OS path slash + + + Path slash to replace on current OS + + + + Full path to project directory, without final slash. + + + + + Full path to project's Assets directory, without final slash. + + + + + Returns TRUE if the given path is an absolute path + + + + + Returns TRUE if the given path is an AssetDatabase path + + + + + Returns TRUE if the given GUID refers to a valid and existing project folder + + + + + Converts the given project-relative path to a full path + + + + + Converts the given full path to a project-relative path + + + + + Returns TRUE if the file/directory at the given path exists. + + Path, relative to Unity's project folder + + + + Validates the string as a valid fileName + (uses commonly accepted characters an all systems instead of system-specific ones). + BEWARE: doesn't check for reserved words + + string to replace + Minimum length for considering the string valid + + + + Returns the given string stripped of any invalid filename characters. + BEWARE: doesn't check for reserved words + + string to replace + Character to use as replacement for invalid ones + + + + Returns the given path with all slashes converted to the correct ones used by the system + + + + + Returns the asset path of the given GUID (relative to Unity project's folder), + or an empty string if either the GUID is invalid or the related path doesn't exist. + + + + + Checks if the given directory (full path) is empty or not + + + + + Deletes all files and subdirectories from the given directory + + + + Returns the adb path to the given ScriptableObject + + + Returns the adb path to the given MonoBehaviour + + + Returns the adb directory that contains the given ScriptableObject without final slash + + + Returns the adb directory that contains the given MonoBehaviour without final slash + + + + Returns the adb paths to the selected folders in the Project panel, or NULL if there is none. + Contrary to Selection.activeObject, which only returns folders selected in the right side of the panel, + this method also works with folders selected in the left side. + + + + + Sets the script execution order of the given MonoBehaviour + + + + + Gets the script execution order of the given MonoBehaviour + + + + + Precisely returns the last controlId assigned to a GUI element + + + + + Utilities for Editor Panels. + + + + + Connects to a asset. + If the asset already exists at the given path, loads it and returns it. + Otherwise, depending on the given parameters, either returns NULL or automatically creates it before loading and returning it. + + Asset type + File path (relative to Unity's project folder) + If TRUE and the requested asset doesn't exist, forces its creation + If TRUE also creates the path folders if they don't exist + + + + Returns TRUE if the given is dockable, FALSE if instead it's a utility window + + + + + + + Sets the icon and title of an editor window. Works with older versions of Unity, where the titleContent property wasn't available. + + Reference to the editor panel whose icon to set + Icon to apply + Title. If NULL doesn't change it + + + + Prefab utilities + + + + + Behaves as the Inspector's Apply button, applying any modification of this instance to the prefab parent + + + + + + Returns TRUe if a prefab instance has unapplied modifications, ignoring any modifications applied to the transform. + NOTE: this a somehow costly operation (since it generates GC) + + + + + Completely removes any prefab connection from the given prefab instances, by desotroing the original object and recreating it. + Returns a list with all the new elements created. + + Based on RodGreen's method (http://forum.unity3d.com/threads/82883-Breaking-connection-from-gameObject-to-prefab-for-good.?p=726602&viewfull=1#post726602) + + + + + + Completely removes any prefab connection from the given prefab instance, by desotroing the original object and recreating it. + + Based on RodGreen's method (http://forum.unity3d.com/threads/82883-Breaking-connection-from-gameObject-to-prefab-for-good.?p=726602&viewfull=1#post726602) + + + + + Calls the given action after the given delay + + + + Return the size of the editor game view, eventual extra bars excluded (meaning the true size of the game area) + + + + + + Clears all logs from Unity's console + + + + + Adds the given global define (if it's not already present) to all the + or only to the given , depending on passed parameters, + and returns TRUE if it was added, FALSE otherwise. + NOTE: when adding to all of them some legacy warnings might appear, which you can ignore. + + + to use. Leave NULL to add to all of them. + + + + Removes the given global define (if present) from all the + or only from the given , depending on passed parameters, + and returns TRUE if it was removed, FALSE otherwise. + NOTE: when removing from all of them some legacy warnings might appear, which you can ignore. + + + to use. Leave NULL to remove from all of them. + + + + Returns TRUE if the given global define is present in all the + or only in the given , depending on passed parameters. + + + to use. Leave NULL to check in all of them. + + + + Returns all components of type T in the currently open scene, or NULL if none could be found. + If you're on Unity 5 or later, and have DeEditorTools, use DeEditorToolsUtils.FindAllComponentsOfType + instead, which is more efficient. + + + + Nothing is being dragged + + + Dragging + + + Dragging concluced and accepted + + + Dragging concluced but item position didn't change + + + Dragging canceled + + + Dragging concluced but not accepted because too short + + + + Manages the dragging of GUI elements + + + + + True if a GUI element is currently being dragged + + + + + Return the current item being dragged, or NULL if there is none + + + + + Type of current item being dragged, or NULL if there is none + + + + + Starting index of current item being dragged, or NULL if there is none + + + + + Retrieves the eventual optional data stored via the StartDrag method + + + + + Starts a drag operation on a GUI element. + + ID for this drag operation (must be the same for both StartDrag and Drag + Reference to the current editor drawing the GUI (used when a Repaint is needed) + List containing the dragged item and all other relative draggable items + DraggableList index of the item being dragged + Optional data that can be retrieved via the static property + + + + Starts a drag operation on a GUI element. + + ID for this drag operation (must be the same for both StartDrag and Drag + Reference to the current editor drawing the GUI (used when a Repaint is needed) + List containing the dragged item and all other relative draggable items + DraggableList index of the item being dragged + Optional data that can be retrieved via the static property + + + + Call this after each draggable GUI block, to calculate and draw the current drag state + (or complete it if the mouse was released). + + ID for this drag operation (must be the same for both StartDrag and Drag + List containing the draggable item and all other relative draggable items + Current index of the draggable item being drawn + If NULL will calculate this automatically using . + Pass this if you're creating a drag between elements that don't use GUILayout + + + + Call this after each draggable GUI block, to calculate and draw the current drag state + (or complete it if the mouse was released). + + ID for this drag operation (must be the same for both StartDrag and Drag + List containing the draggable item and all other relative draggable items + Current index of the draggable item being drawn + Color to use for drag divider and selection + If NULL will calculate this automatically using . + Pass this if you're creating a drag between elements that don't use GUILayout + + + + Ends the drag operations, and eventually applies the drag outcome. + Returns TRUE if the position of the dragged item actually changed. + Called automatically by Drag method. Use it only if you want to force the end of a drag operation. + + If TRUE applies the drag results, otherwise simply cancels the drag + + + + Abstract dynamic class used for every node of the same type + (meaning there is only a single recycled instance for all same-type nodes) + + + + Used to fill + + + Called when the node needs to be drawn + + + + The connectedNodesIds list will be automatically increased/decreased when adding/removing connections + (otherwise connectedNodesIds will have to be increased via custom code) + + + + + Requires only two connectedNodesIds (no more, no less), + uses regular CTRL+Drag to connect connection 0, CTRL+SPACE+Drag to connect connection 1 + + + + + Like , but with an extra connection as a last extra index, which is set when pressing CTRL+SPACE+Drag. + Must always have at least one element in connectedNodesIds + + + + Layout, Repaint, LayoutAndRepaint + + + + Stores cloned nodes for pasting + + + + + Returns a list of pasteable nodes, with their GUID recreated and their connections adapted + + + + + + Returns a clone of the given node (clones also lists, but leaves other references as references). + A new ID will be automatically generated. + + + + + Always connects a node from BottomOrRight side to TopOrLeft side + + + + + Always connects from BottomOrRight side to TopOrLeft side. + If ALT is pressed shows the delete connection button. + Called during Repaint or MouseDown/Up. + Returns TRUE if the connection was deleted using the delete connection button. + + + + + Always connects a node from BottomOrRight side to TopOrLeft side + + + + + Always connects from BottomOrRight side to TopOrLeft side. + If ALT is pressed shows the delete connection button. + Called during Repaint or MouseDown/Up. + Returns TRUE if the connection was deleted using the delete connection button. + + + + + You can attach to this + + + + + Use this to add a content group to the Help Panel + + + + Regular note + + + Editable note (activated by setting to TRUE + (but you will have to save the result somewhere yourself) + + + If TRUE shows the textArea + + + + Add definition. Supports rich-text but also these special tags: + - [b][/b] + + + + + Add key, automatically formatting these special keys: + / + + + → + + If TRUE and there's other keys/targets, adds the new key on a new line preceded by a comma + + + + Recalculates all rects based on the given Y shift + + + + + One per . + Partially independent, mainly controlled by process. + + + + Returns TRUE if the given node is currently being dragged + + + + Returns TRUE if a repaint is required + + + + + + Main class for DeGUI Node system. + Create it, then enclose your GUI node calls inside a . + CODING ORDER: + - Create a to use for your node system (create it once, obviously) + - Inside OnGUI, write all your nodes GUI code inside a + + + + Distance at which nodes will be placed when snapping next to each other + + + Full area without zeroed coordinates + + + Position with zeroed coordinates (used by all node GUI since it's inside a GUILayout(area)) + + + + Creates a new NodeProcess. + + EditorWindow for this process + Callback called when one or more nodes are going to be deleted. + Return FALSE if you want the deletion to be canceled. + Can be NULL, in which case it will be ignored + Callback called when a node is cloned. + Return FALSE if you want the cloning to be canceled. + Can be NULL, in which case it will be ignored + + + + Needs to be called when loading a complete new series of nodes + + + + + Call this when the layout/size of one or more nodes changed because of external intervention + (if a whole new range of nodes has been loaded, just call instead) + + + + + Forces the refresh of the area calculations. Useful if you need them before the first GUI call has run + + + + + Shifts the visible are to the given coordinates and repaints on end + + + + + Tells the process to repaint once the process has ended. + Calling this + + + + + Draws the given node using the given T editor GUINode type. + Retuns the full area of the node + + + + + Opens the Help Panel + + + + + Closes the Help Panel + + + + + Opens or closes the Help panel based on its current state + + + + + Returns TRUE if the given area is visible (even if partially) inside the current nodeProcess area + + + + + Use this to encapsulate node GUI operations. + Automatically manages various operations (press F1 to see them). + Sets GUI.changed to TRUE if the area is panned, a node is dragged, controlNodes change sorting or are deleted. + Wraps all content inside a GUILayout Area (nodeArea). + + The to use + Area within which the nodes will be drawn + Area shift (caused by dragging) + This list will be sorted based on current node draw order, + and changed in case one of its nodes is deleted. + IMPORTANT: this list should be part of your serialized class (MonoBehaviour or ScriptableObject), + so it will be stored as a reference and modifying one will modify the other. + Usually you want to pass all nodes to this except the eventual start node (or nodes that can't be sorted nor deleted). + + + + Set automatically when a selection ends up selecting a single node, + reset when deselecting all nodes, selecting multiple nodes, or resetting the + + + + + Returns TRUE if something was actually deselected, FALSE if there were no selected nodes + + + + + + Returns key modifiers currently pressed. + Requires to be updated at the beginning of every GUI call. + + + + + Call this method to update data required by softCtrl calculations. + Automatically called from within a . + Returns a object with the keys that were just pressed and just released + + Required to have the correct for the given target call + + + + Returns the given as an int, or -1 if it's not a number + + + + + Returns by . + Contains properties and methods to manage non-layout scrollview better. + Remember to use or to increase or set the full content height + + + + Area used by ScrollView and its content + + + Full content area regardless if visible or not. Its height should be set manually based on the contents' height + + + Content area currently visible (scroll bars excluded) + + + Current scrollPosition + + + + Returns the current open, or an empty one if none is open. + + + + + Sets the height + + + + + + Increase the height by the given amount + + + + + + Returns a Rect for a single line at the current scrollView yMax + + If less than 0 uses default line height, otherwise the value passed + if TRUE (default) automatically increases the height of the accordingly + + + + + Returns TRUE if the given rect is at least partially visible in the displayed scroll area + + + + + Contains both free and pro skins GUIStyle variations, + and automatically returns the correct one when converted to GUIStyle + + + + + Plays the given clip in the Editor + + + + + Stops playing the given clip. + + + + + Stops all clips playing. + + + + + Util to determine Unity editor version and store them as comparable numbers + + + + Full major version + first minor version (ex: 2018.1f) + + + Major version + + + First minor version (ex: in 2018.1 it would be 1) + + + + Assembly extensions + + + + + Full path to the assembly directory, without final slash + + + + + AssetDatabase path to the assembly directory, without final slash + + + + + GUI extension methods + + + + + Clones the style and adds the given formats to it. You can pass any of these types of values: + + Format:Rich-text, wordwrap + FontStyle:Font style + TextAnchor:Content anchor + int:Font size + Color/DeSkinColor:Font color + + + + + + Adds the given formats to the style. You can pass any of these types of values: + + Format:RichText, WordWrap + FontStyle:Font style + TextAnchor:Content anchor + int:Font size + Color/DeSkinColor:Font color + + + + + + Sets the border of the style + + + + + Sets the border of the style + + + + + Sets the background of the style + + + + + Sets the contentOffset of the style + + + + + Sets the contentOffset of the style + + + + + Sets the X contentOffset of the style + + + + + Sets the Y contentOffset of the style + + + + + Sets the margin of the style + + + + + Sets the margin of the style + + + + + Sets the margin of the style + + + + + Sets the left margin of the style + + + + + Sets the right margin of the style + + + + + Sets the top margin of the style + + + + + Sets the bottom margin of the style + + + + + Sets the overflow of the style + + + + + Sets the overflow of the style + + + + + Sets the overflow of the style + + + + + Sets the left overflow of the style + + + + + Sets the right overflow of the style + + + + + Sets the top overflow of the style + + + + + Sets the bottom overflow of the style + + + + + Sets the padding of the style + + + + + Sets the padding of the style + + + + + Sets the padding of the style + + + + + Sets the left padding of the style + + + + + Sets the right padding of the style + + + + + Sets the top padding of the style + + + + + Sets the bottom padding of the style + + + + + Sets the Y fixedWidth of the style + + + + + Sets the fixedHeight of the style + + + + + Sets the stretchHeight property of the style + + + + + Sets the stretchWidth property of the style + + + + + Stores a GUIStyle palette, which can be passed to default DeGUI layouts when calling DeGUI.BeginGUI, + and changed at any time by calling DeGUI.ChangePalette. + You can inherit from this class to create custom GUIStyle palettes with more options. + Each of the sub-options require a public Init method to initialize the styles, which will be called via Reflection. + + + + + Called automatically by DeGUI.BeginGUI. + Override when adding new style subclasses. + + + + + Extend any custom subpalettes from this, so they will be initialized correctly + + + + + GUILayout methods + + + + Shaded button + + + Shaded button + + + Shaded button + + + Shaded button + + + Colored button + + + Colored button + + + Colored button + + + Colored button + + + + Draws a button that returns TRUE the first time it's pressed, instead than when its released. + + + + + Draws a button that returns TRUE the first time it's pressed, instead than when its released. + + + + Toolbar foldout button + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Begins an horizontal toolbar layout + + + Begins an horizontal toolbar layout + + + Begins an horizontal toolbar layout + + + Begins an horizontal toolbar layout + + + Ends an horizontal toolbar layout + + + A toolbar with a label + + + A toolbar with a label + + + A toolbar with a label + + + A toolbar with a label + + + A toolbar with a label + + + A toolbar with a label + + + Vertical box layout with style and color options + + + Vertical box layout with style and color options + + + End vertical box layout + + + Horizontal Divider + + + + A text field that becomes editable only on double-click + + EditorWindow reference + A unique ID to use in order to determine if the text is selected or not + Text + Style for default (non-editing mode) appearance + Style for editing mode + + + + A text field that becomes editable only on double-click + + Editor reference + A unique ID to use in order to determine if the text is selected or not + Text + Style for default (non-editing mode) appearance + Style for editing mode + + + + A text field that becomes editable only on double-click and can also be dragged + + EditorWindow reference + A unique ID to use in order to determine if the text is selected or not + Text + ID for this drag operation (must be the same for both this and Drag + List containing the dragged item and all other relative draggable items + DraggableList index of the item being dragged + Style for default (non-editing mode) appearance + Style for editing mode + + + + + A text field that becomes editable only on double-click and can also be dragged + + Editor reference + A unique ID to use in order to determine if the text is selected or not + Text + ID for this drag operation (must be the same for both this and Drag + List containing the dragged item and all other relative draggable items + DraggableList index of the item being dragged + Style for default (non-editing mode) appearance + Style for editing mode + + + + + Creates a Gradient field by using Unity 4.x hidden default one and Reflection. + + + + Scene field + + + + Global Demigiant GUI manager. Call to initialize it inside GUI calls. + + + + + Default color palette + + + + + Default style palette + + + + TRUE if we're using the PRO skin + + + + Call this at the beginning of GUI methods + + Eventual to use + Eventual to use + + + + Better implementation of GUI.BeginScrollView. + Returns the modified scrollView struct. + Must be closed by a DeGUI.. + + Area used by the scrollView + target + If TRUE (default) resets .height to 0 + after beginning the ScrollView + + + + Closes a DeGUI. correctly + + + + + Exits the current event correctly, also taking care of eventual drag operations + + + + + Changes the active palettes to the given ones + (or resets them to the default ones if NULL) + + + + + Resets the GUI colors to the default ones (only available if BeginGUI was called first) + + + + + Sets the GUI colors to the given ones + + + + + Sets the GUI cursor color to the given ones + + + + + Sets the GUI matrix to the given ones + + + + Shaded button + + + Shaded button + + + Shaded button + + + Shaded button + + + Colored button + + + Colored button + + + Colored button + + + Colored button + + + Toolbar foldout button which allows clicking even on its label + + + + Draws a button that returns TRUE the first time it's pressed, instead than when its released. + + + + + Draws a button that returns TRUE the first time it's pressed, instead than when its released. + + + + Toolbar foldout button + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Button that can be toggled on and off + + + Scene field + + + + Draws a background grid using the given grid texture + + Area rect + Offset from 0, 0 position (used when area has been dragged) + Texture to use for the grid + Eventual scale to apply to the grid + + + + Draws a background grid using default grid textures + + Area rect + Offset from 0, 0 position (used when area has been dragged) + If TRUE forces a dark skin, otherwise uses a skin that fits with the current Unity's one + Eventual scale to apply to the grid + + + Box with style and color options + + + + Can be used instead of EditorGUI.PropertyField, to draw a serializedProperty without its attributes + (very useful in case you want to use this from within a PropertyDrawer for that same property, + since otherwise bad infinite loops might happen) + + + + Draws a colored square + + + Draws the given texture tiled within the given rect + Eventual scale to apply + If not NULL, colorizes the texture with this color + + + + A text field that becomes editable only on double-click + + Area + EditorWindow reference + A unique ID to use in order to determine if the text is selected or not + Text + Style for default (non-editing mode) appearance + Style for editing mode + + + + A text field that becomes editable only on double-click + + Area + Editor reference + A unique ID to use in order to determine if the text is selected or not + Text + Style for default (non-editing mode) appearance + Style for editing mode + + + + A text field that becomes editable only on double-click and can also be dragged + + Area + EditorWindow reference + A unique ID to use in order to determine if the text is selected or not + Text + ID for this drag operation (must be the same for both this and Drag + List containing the dragged item and all other relative draggable items + DraggableList index of the item being dragged + Style for default (non-editing mode) appearance + Style for editing mode + + + + A text field that becomes editable only on double-click and can also be dragged + + Area + Editor reference + A unique ID to use in order to determine if the text is selected or not + Text + ID for this drag operation (must be the same for both this and Drag + List containing the dragged item and all other relative draggable items + DraggableList index of the item being dragged + Style for default (non-editing mode) appearance + Style for editing mode + + + + A textArea that becomes editable only on double-click + + Area + EditorWindow reference + A unique ID to use in order to determine if the text is selected or not + Text + Style for default (non-editing mode) appearance + Style for editing mode + + + + A textArea that becomes editable only on double-click + + Area + Editor reference + A unique ID to use in order to determine if the text is selected or not + Text + Style for default (non-editing mode) appearance + Style for editing mode + + + Divider + + + + Changes the alpha of this color and returns it + + + + + Replicates DeExtensions.RectExtensions for internal usage + + + + + Adds one rect into another, and returns the resulting a + + + + + Returns a copy or the Rect expanded around its center by the given amount + + Indicates how much to expand the rect on each size + + + + Returns a copy or the Rect contracted around its center by the given amount + + Indicates how much to contract the rect on each size + + + + Returns a copy of the Rect resized so it fits proportionally within the given size limits + + Width to fit + Height to fit + If TRUE (default) only shrinks the rect if needed, if FALSE also enlarges it to fit + + + + + Returns TRUE if the first rect includes the second one + + If TRUE, returns TRUE only if the second rect is fully included, + otherwise just if some part of it is included + + + + Returns a copy of the Rect with its X/Y coordinates set to 0 + + + + + Returns a copy of the Rect with its values shifted according the the given parameters + + + + + Returns a copy of the Rect with its X property set to the given value + + + + + Returns a copy of the Rect with its Y property set to the given value + + + + + Returns a copy of the Rect with its height property set to the given value + + + + + Returns a copy of the Rect with its width property set to the given value + + + + + Returns the value of the given property (works like a cast to type). + + Improved from HiddenMonk's functions (http://answers.unity3d.com/questions/627090/convert-serializedproperty-to-custom-class.html) + + + + + + Returns TRUE if this property is inside an array + + + + + Returns -1 if the property is not inside an array, otherwise returns its index inside the array + + + + + String extensions + + + + + If the given string is a directory path, returns its parent + with or without final slash depending on the original directory format + + + + + If the string is a directory, returns the directory name, + if instead it's a file returns its name without extension. + Works better than Path.GetDirectoryName, which kind of sucks imho + + + + + Texture extensions + + + + + Checks that the texture uses the correct import settings, and applies them if they're incorrect. + + + + + Replicates parts of DeExtensions.ListExtensions for internal usage + + + + + Shifts an item from an index to another, without modifying the list except than by moving elements around + + + + diff --git a/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.xml.meta b/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.xml.meta new file mode 100644 index 00000000..22f81304 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/DemiEditor.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d4a42b2e4e6f64d4ba01d35c5a3dafed +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs.meta new file mode 100644 index 00000000..2c15f5fd --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f19b6aa70f29b4543af25b5561cc6ae2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquare.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquare.png new file mode 100644 index 0000000000000000000000000000000000000000..6fbcc5130cedc76f7566a958195e3703ada2eab4 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMkesKB zV~9m>a!NwNkMjanMkesKB zV~9m>a!NwNgp>sg28IC~ZoCqv30E2pCNeNHGpw>anMkesKB zV~9m>a!Nu%K=J|x1H%9gH(m+TgewgP6B(G98SdR+aC^Gv{4tanMkesKB zV~9m>a!Nu%LBawC1H%9gH(m+TgewgP6B(G989d|}5-xj9E&?iL@O1TaS?83{1OVO4 B8T|kN literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha25.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha25.png.meta new file mode 100644 index 00000000..f77f5ce1 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha25.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: f7ff421f40d548444864a01cd7f47112 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha50.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha50.png new file mode 100644 index 0000000000000000000000000000000000000000..700b9debeaead0d7b26b31ed60c7e84dbf788ae6 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMkesKB zV~9m>a!NwNiu45x28IC~ZoCqv30E2pCNeNHGq@`;%)dF?xDTk5!PC{xWt~$(69Dad B8jt`0 literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha50.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha50.png.meta new file mode 100644 index 00000000..d2e783ed --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha50.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: aa1d42dc6ff3e894da2208c6929d2165 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha80.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blackSquareAlpha80.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a47c3701daa735d11da1c8e1e3c6f752d222c9 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMkesKB zV~9m>a!Nvi#bF1=gro%mJyHf)2UajPA7)@anMprDMW zi(`n!#N-r@>Vpnk2}ufqJy{Z04MI!|3>X;nS1{&fnF;m*)iHRw`njxgN@xNAT}&7% literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blueSquare.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blueSquare.png.meta new file mode 100644 index 00000000..99854cc0 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/blueSquare.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 05cfe010378336646ad6c721f66543d1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/circle.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/circle.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed059a404fad33f34ed81321288c886dab0c6de GIT binary patch literal 455 zcmV;&0XY7NP)pGc}YY;R9J<@m%&QIKomt^ii;xRPP(g9TCLFFH;B-M`aR;lD{<2g zaNAFCQxLzQ1aTvR-H6szv2H3p?@gkK1x;I%c?T{t5IXl}I!xa4WKL9d4Z{(10PR7W z&_?`t1U*0l=nA^@JnvQV0LI(U1vJt5nZ&=T{l~Zrok3Gwo@u;Bc~SEQG|>FuTD5u2 zeQ2cl!!`XZ^Ljz%=@47Lne#snw0P+8eI`n&3>~N?#nXztLc)6hiRu_`p%rn%JG6tl z;{Iy~PQ;x#q1P!V9^QT(<0G^xZh3<$+<`-JZ%*iW%m8h%qs;)m*x@rkRqUwp5USYm zQ4(Vq;92Z=VSu67F=T*1>_&^{M@cpt!bMS9|8sBDvMf)9U}KVJh0L`YvIrWTiF37R&1Ql$b@}GBnYI2R x?Ky8uw&(kjwC9!h@slL&`L#st`8a!3kxvBIUpIp~UK{`b002ovPDHLkV1h6R(RTm< literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/circle.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/circle.png.meta new file mode 100644 index 00000000..50fa2a3d --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/circle.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: af28470bd0e2e9543a6dfa9a1a4b348d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/greenSquare.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/greenSquare.png new file mode 100644 index 0000000000000000000000000000000000000000..63ef49a76b220d4de80807510b94f406c525e5cb GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5he4R}c>anMprDMW zi(`n!#N;V^PaSgLN=Q-=?8%b2Y7k;#V8Fnje2P&lc>$vzP#uG(tDnm{r-UW|fY%uC literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/greenSquare.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/greenSquare.png.meta new file mode 100644 index 00000000..3929aa25 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/greenSquare.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 789ef07ba2573f6448fa8b5dc5224c44 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/grid_bright.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/grid_bright.png new file mode 100644 index 0000000000000000000000000000000000000000..5c2feae19dcc914919ab80fb84485e00a07e4699 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1SD0tpLGH$&H|6fVg?4j!ywFfJby(BP;i2$ zi(^Pe~gvJ1Rc= z?Ot!qiO>2DOF9@gq%oXjn8j$qoWXX1X90@9arT z#W5tK@$F4Rt^*1J3(_vMzVA+9hCAwRC4IicbTxXen@yoZH)$TLp zrW-e;F`Q+X#c0Bu!FGXXfusY9z&d`5^RH({?s9+MdcCA?-!-jS@BSaK$Ep;j_wA>K a4t9SLo(F6Gt~w8N6@#a%pUXO@geCx~6HWdA literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/grid_dark.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/grid_dark.png.meta new file mode 100644 index 00000000..fa32bddd --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/grid_dark.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: d542f997a51000946873268e3546b6ba +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alert.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alert.png new file mode 100644 index 0000000000000000000000000000000000000000..9242a22984b08edaeef4a97ca09251719599f746 GIT binary patch literal 540 zcmV+%0^|LOP)pG&PhZ;R5*>TmA^{@VHn4s_q;MC!-&SVNGQ<|XQe4zN*5>Bi0B8_ z(B#-6L6L|M{Rb{Vi#3V6gP0CRo1=x1WNCN4J&&ne`ihtMh3DS)?w;?*_nzm@7ewNm zNBRGBF5)l&co~PsW->XW`d^7=YV2ZK$Vt}(`*N5OAf<+A_H;Q-!fjD$0z5v=(< zNJ~q12;bJ;lls6LIQZ+Qr@Fvx59U!mYOCWHBylcbJT}v5{$er>gjS;ah<3I)od2#FpCA|3k6_{i&xm(Fx7bluOHSUk)dF{B0q6Z`^053cwF=zqZp!gO@D;0000anMprEOz zi(`mIZ*qzP(;s%G5<@oyhKoKtB29tJD-syEdm8mueQ3PsAj8w}ant&b^`}8BSioJ literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignB.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignB.png.meta new file mode 100644 index 00000000..9a850701 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignB.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 8b6b31f71cd528243b053cfc488e73f5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignBC.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignBC.png new file mode 100644 index 0000000000000000000000000000000000000000..3118ab10593c1b69d6e1d48975d2ada785dd2902 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC>Y@B z;uvDloBZYD$DijNTn`*^NIk%moO5$i>qMdE1iPiXxZQbWObf0!Br$N?c}}jZitt`! z>^Z&Q*>6FKwhHez;*R|ry1ds+KAfpAHTJ{-1_rYXzK^{pYK?$qGkCiCxvXqMdE1iPiXxZQbWObf0!Br%-sUf`b4<~c#m vYh|(8OQFchYLzxcJqMdE1iPiXxZQbWObf0!Br$OBl=6M{a^aL9 seF?e7mlI{$mQ1^|!N8e4q)d^SnPH0pZ@U)rX^^c9p00i_>zopr0Qs6O7ytkO literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignBR.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignBR.png.meta new file mode 100644 index 00000000..996a1ce7 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignBR.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: eeac3acbf7d1cd54fabfb1c4a12f9fc8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCC.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCC.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f85ccf8c0fca414c90e664cda7f5db110bf004 GIT binary patch literal 152 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmDCp(s z;uvDloBZYD$DijNTn`*^NIk%moO5$i>qMdE1iPiXxZM{t>ikggefBcZHz<9Q-ou^) w7d<3f*dFz!)@FVdQ&MBb@035_LApigX literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCC.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCC.png.meta new file mode 100644 index 00000000..94c127d3 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCC.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 8f0cb66458819764b94b93250bae94b6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCL.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCL.png new file mode 100644 index 0000000000000000000000000000000000000000..39e15460bcb8572d222b8c9f81b7ea7042045945 GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC>Y@B z;uvDloBZYD$DijNTn`*^NIk%moO5$i>qMdE1iPiXxZM{t>gYGgHA<>ER%x7k?sG|X zlTxNh5Zl5=9ii7x4)AzwmgDJh<9eE~Vfqao9tO^d0!J#qMdE1iPiXxZM{t>O9FZnYp}u(w#U18>Y*P xCmM0^s#s4uuM+EYa@FF<{;Grx({J$bFz|=+F9@hFv;-Q<;OXk;vd$@?2>|{=G4B8X literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCR.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCR.png.meta new file mode 100644 index 00000000..74d549ba --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignCR.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 6f504a3fa8848264bb4fb9bb7d582dd5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignHC.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignHC.png new file mode 100644 index 0000000000000000000000000000000000000000..dc638a7f4794363ae5117c54dbd4656672539c99 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprEU# zi(`mIZ*qzP(;s%G5<@oyhKoKtB2A6v4XnowJom3j5U6;#Y5m9gm`O)Y1ioRaPanMprDnf zi(`mIZ}N^e*?;6)Bu}vT@Q5&pl{Ef$XwW;x!LoyA!41~K2N-%Bj)*7RV5nUrC@;}_ ftg+vXjg8^anMprEs- zi(`mIZ*q!)aLhN;fBcJPN@%d?{80JN%(zQJSwP{lX4ydl1BQHsMeGu04m-IwxQf~t oNcGNWXq~a*5W7YRBQrCD=nbx>q?xC$0*zzvboFyt=akR{0RQPILI3~& literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignR.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignR.png.meta new file mode 100644 index 00000000..b5c088ee --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignR.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 727ba41e4cc95fe4a98b07301e3ebfc8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignT.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignT.png new file mode 100644 index 0000000000000000000000000000000000000000..b4397c60a97aaf24c2506005053933d6469f947d GIT binary patch literal 129 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprEm* zi(`mIZ}Ofu*?;CYG95T#@Ptvh=c7D_fl6b;1ev3W20T0ojfM%0PFfPYM;gr=8W|a! Xt+|SMR787$+8I1u{an^LB{Ts533wwe literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignT.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignT.png.meta new file mode 100644 index 00000000..20e993f6 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignT.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: b4785ec6d937dab4fa59da70b69afc9d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTC.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTC.png new file mode 100644 index 0000000000000000000000000000000000000000..de6a933ded8177badee0cc96a9aa1a2fbbf3f089 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC>ZAH z;uvDloBZYD$DijLnD=m0wS>kb&6Uy9V!Z literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTC.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTC.png.meta new file mode 100644 index 00000000..66d041f7 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTC.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 0f79253104349f44cb73978f6c8e93de +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTL.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTL.png new file mode 100644 index 0000000000000000000000000000000000000000..627b907d345cf01adac7228639ef5ec9126558dc GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmDCq6! z;uvDln`|<3`S?L|7swrOvz3R3LGvN^CyAfE+CXC&JYD@<);T3K0RSeKFSq~z literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTL.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTL.png.meta new file mode 100644 index 00000000..7763c85a --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTL.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 6efe1c8569d975640ba0c9f2ac4a9d61 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTR.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignTR.png new file mode 100644 index 0000000000000000000000000000000000000000..6a0d89d4ab8ee1f7bb014545e12b133563639a3e GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmDCq0y z;uvDloBZYD$DijN*eV3SaICfvW}eE(-LoanMprECv zi(`mIZ}I_lz28#**%NEBW=LqT^t@pD-^j3@O~K(=@SCQ@1co?=`57uAxh)4WOoSLp dI^5XU7;GfO7!~URp8*YF@O1TaS?83{1OU0VB-Q`` literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignVC.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignVC.png.meta new file mode 100644 index 00000000..027cbd70 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_alignVC.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: d1d45eadab0e41c4a82cdffb6396b1d7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_camera.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_camera.png new file mode 100644 index 0000000000000000000000000000000000000000..f1465163efb49c68c56e9ba1105e270d1f95f79b GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^+(695!3HFgJ}hYlQk(@Ik;M!Qe1}1p@p%4<6rf;( zr;B5V#MER5_W%F?e`kFp9`L4HFOq-iiuO__%H znoN1md1U*78^W=L?2}%eU{JZn7^=*0q}!oq{{KSe33KdEyj9>+?nqD&GBBLL;Luh7 za3cH3ql_Qf4ftPlabCFKz^<^7Gr&{`XyJVZhG}PS7ZpG4M{{nR2Y?okUwsNPz=U-&>$pGlQm0E&;jvafB_CrG0+>(T%ot< z-i>x(?}B=UDB`~qiM=aBNQ4AMQD5yyVL+(;27Z3_XUm3g6H!X<6h--L+x8x~2R@`} z`gJL4n&w)Tbudk{!Ps$}A`HVbh#_s;&c{h$I%ZkM%Cck_!(`TV9YZ1Uef9GA5d>ju zmSuSt1i?>T*Bla7*1>) zsplTR{8j8PRaJE%`fj*?cSQN#q5%X~1DT<1wGmEJc=Z4P002ovPDHLkV1jVXlTZKv literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_camera_border.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_camera_border.png.meta new file mode 100644 index 00000000..267d9be8 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_camera_border.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 358cddede8023574191e0aae610a4645 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_cog.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_cog.png new file mode 100644 index 0000000000000000000000000000000000000000..b7f481e9d866280ded3971b2fa8d5c7ffad6c8ec GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevL9R^{>eBfcF0TApGDoI2^R2Y?GW`Kg2n3z^kQPFj>va*-t<>ggXR8&q|Sy}O4zI=Hv zNS+C%@csMuamB^O{My>un?Sg*u#g`p77deU3=R&?`19va4$vfxNs}fqzj^ZpEFmHy z!jPAj_xJJR$2VA5Sf((zxVU^+w{G2kpyL0vwYAsH&CL&jFo+Ej1IdBZFflSRX71d% z^Ec2M1|a?JC*4wvlPiF)MOUI{ApQ02L6r?6hn1I_eFyQ6o z^=QkME&tQg)Bk|*wr$(~dwY97hFc9|0IgZt-`}74`}glC5dY4dJIf>_B$hyA85jUh Wy^gC3zEAG}0000anMpkR`x zi(`ny)MSRn|NsB*{?p!YJmb%DA0B}Owx#?FKk^?Cv2c3%SfXZup^w8K$*d)EQ~nDc zOK;%%*Un|6_|b9J42Q5Aj=k1LPn`I{-&xOegk5t(3)h?WODk$7Twma}E8&x*1jEX* Wyo)>cM1}xuWAJqKb6Mw<&;$SlB|xwM literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment.png.meta new file mode 100644 index 00000000..d6b5bfaf --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 622fdb780ae13e840938631c5ed708f2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment_border.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment_border.png new file mode 100644 index 0000000000000000000000000000000000000000..d61a35d12f89898b1bb6a87f416d2a361fc9df45 GIT binary patch literal 426 zcmV;b0agBqP)pGTuDShR2Y>lkilxgKoEvE8+S1qdrBSz(Z+Tuo@I4L}>6}4;Jg8U@aoq#-#rS2Zo*5{bv7}5y;M})vAjl4Nt-E zf*@E@N*}^7WXS(0hbomyW)Ify_j9#cjRG?B`TR|*)k-&;O$EqH1S*PhUMiJ-dF;Aw z$QZLXn~hd3mr1wV{ls;T?v$?@jYe!Xn-N)-zvA)uK1@j_lf*Pl5em-{h+Yg`*N+^> zA(AA$ilV5a9WF`c^Lb`88aW({;o+oMEXtiuhb2%7r+wD6TpQ@^Q zipIZrwQbwX^Sqw#`xm@F%d$Qo`?gc1m#7Zb>or-eRvvy>0zNDh3Z&g``(U0T5Uv}B zksFW4B#}rAG0Yh@5bbv|nWRu;@mSC_jgK!0f*?cY777Q*@8Nu1KZC*Gm=Hq#0Ta-T U6;Ga>XaE2J07*qoM6N<$f-3^I)&Kwi literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment_border.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment_border.png.meta new file mode 100644 index 00000000..879f7002 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_comment_border.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: d98b8847646169c4fb5af28dd84c4179 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_delete.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..85bb2483c4ab2d98a3c48823b1d38c1d34308331 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9F5he4R}c>anMprEs- zi(`ny)Z`!k|L^AzkY`BBWz%5TxG+hHCxDG(Pn%bU^G$_<21efpwjzg36{I;QH)yhW o8yN~Pv8+`%HnC#Q&v+Jwhi|t0e|4ql7|=KdPgg&ebxsLQ041|4GXMYp literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_delete.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_delete.png.meta new file mode 100644 index 00000000..68d56eaf --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_delete.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 6b1f9e1e1c2cf004b8e3bdd3033a8e75 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_demigiant.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_demigiant.png new file mode 100644 index 0000000000000000000000000000000000000000..3445065c4b6b03dfa8849bcbb2bcfa2d4b2e2c70 GIT binary patch literal 605 zcmV-j0;2tiP)pH4@pEpR5*>5Q_pJ?K@|RGH*N#jG^J~^0YM@X2)zi>o?1O92%fwY zPoj8`sE7Oo9zFGB6>L?g=s`Sq@gPMHD(Xo+`lA(;Dyb$d{#wU0-R@?5Z_*9BjTL;b z%=_NV_syHP?+I+OLZL7$gs6~vNGY|0V}zGzc|iC|y~kz`%wevX&1Rsod(n%aFjA?&3S3+)E7L)Tc8XI)`XLee}Vj{OV9vd1->_wQkH7?#9 z1Jm;ohvIl?wVv3kHNQmeeZ%+t8Sb#$(pGjY&j7R5*>TmCtIzKoG`fV--CJ^&m!XMGzlA=vh377bTbWF+}VIz)j$g_qya>y zop}kHp=;!G064)3@C^E9OaOch77Ct$IF4ZbmQ5x@=4$06Tv|4m;WJ;1!nK;)#0GOV zQ|b_g2v@6sjVzXJ_U-5$&d8VMa0qm_FI~T=ef_V&+Q&>wCjV@(KK}&}eF3^_XtWu^ R>+Apk002ovPDHLkV1l}g)4%`# literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_end.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_end.png.meta new file mode 100644 index 00000000..7a29b196 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_end.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: a248c8288afb9184f953d9aa07a696b0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_heart.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_heart.png new file mode 100644 index 0000000000000000000000000000000000000000..7ea0c06f4746fde06696146f5fc58c0bd2a4705c GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevL9R^{>ytLPfU_N>xK}dN*#rXpV6b>{n zCna{u>aU14wYq1NoD~D zm^$_=Ycg%r-C)I{A;@#2exZfL`qhnGMGg|7QyLi=n7I$IoRxdH4Co#PPgg&ebxsLQ E0P#aag#Z8m literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_heart.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_heart.png.meta new file mode 100644 index 00000000..3707d2e8 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_heart.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: d173388c1d9c32a418b5b777dd89d71a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_heart_border.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_heart_border.png new file mode 100644 index 0000000000000000000000000000000000000000..a53308482c1c4eba9d0d1029a8ca2efecf1d5546 GIT binary patch literal 307 zcmV-30nGl1P)pFMl_cq?D9T1v)q7DC+rIA~x~?DU zx>nen+P2*h%d+-C5YVpcC=`Zai-AW5h7O9ivMecARaL`qf!Vfw6$z6p%Y;kQG%^+# z>k9(&Q5?tQpWZAY>@hRfbuW3I(_bM2LuWX}_FQLdk&vvS@a=FVdQ&MBb@03Tp9dH?_b literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_nodeArrow.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_nodeArrow.png.meta new file mode 100644 index 00000000..661a117b --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_nodeArrow.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 4aa34055b1d36ef479af3d7b5701b28a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_play.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_play.png new file mode 100644 index 0000000000000000000000000000000000000000..0608dcb7ab4d0a1a5d2e56b3e7affa340ee4d695 GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k&H|6fVg?4j!ywFfJby(BP;ir{ zi(`n!#Hm4!T+IdoF+Tj2&H5kaJ@PIRX3^it@z=+0!u<{pTkc<7_iR*NM~Q@a-?B1j zJYz8XjoJogLDi3rIi2f!-!AifprEK~XV`buyYgvWxf936fd6)#(`Ky>4Si_hyD?xd zo7Fmvr3UAVw_JNFW<$T%X&MBcEjH{|{-0xuic+ORkMZ}fy zn8bun1{WVLez{4fQ0Dl0-+1ZQPur8v{{3jmAeR59;KbVEH5EYDGkCiCxvXpGG)Y83R49>^k}+$8Kp2L<>f+`ggtSveOC}W@9EARWZf*^NOP7M; z?{IW04ia$@obne0hoTM{>X5;yTc~5j>gCRwgS11*3y0qOKHul@oi{LRwOVn4AUxyO zC%o=w`yH?Ncs#x~P4h*JsX&sXJBDF)x~|Kc%?3nKoanl)VY}TzmSyEQj*nGUeN3Gd zMJa@_iq5T}OSw z5SGD570+irYZwLy!w?L^fIQD9Z)QXW{t<3|v1fjUQD2xW%Ytc|kR%Ccnnou^9;6_Q zqKLxl^%~+h2HUoQ<2dTiOnCKJ*|u%Jm&@g@D2fOC+1tfp0X)w`-}kWJ@4@ptNYiw> gIGlf8`D*~20Kj|d@@JyvGXMYp07*qoM6N<$f*&fV3jhEB literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_play_border.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_play_border.png.meta new file mode 100644 index 00000000..ee6cdc8c --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_play_border.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 45e128e1cf00555479ee7934ab11cadf +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_skull.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_skull.png new file mode 100644 index 0000000000000000000000000000000000000000..7e5397545d7a45641ad23338850e6cb0b88f03dc GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevL9R^{>pF{z*hZR2Y?Yk-ch#Koo?JKZT7=Dr<|Ru+S*cI!};iN$D#HVr47% z0zx1*7Pq-w2&A%zsAaIwG=d62H#-tT;F5ubVdmSzSymt}!!WKCMR^oO@j=tH8)RMA zy>Hw0v@Ax^2p$zK-1YJrzYkS(eeduKR&Uh7OF(FTb^IdmDx!sj5nnB%z=f4aTa()7BevL9R^{>$+Q-p%fJeONQYMtD+`qRv0zM#G2+ELR(T@C*1i yf7-ktN#oik#*bPGVQxafZCx7;4Gatz7;bn?UAF3X!Zn~n7(8A5T-G@yGywo>oJJ1- literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_star.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_star.png.meta new file mode 100644 index 00000000..1f70558e --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_star.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 645aafe2260b2884a9df05b4bc01b1ec +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_star_border.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_star_border.png new file mode 100644 index 0000000000000000000000000000000000000000..4615829ffcca351f0e09b4b4287cdc14d2044f1c GIT binary patch literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevL9R^{>)M{{R2qJVSfp(U}u0Sy@^6Vq#)0-MMq;l7iVL z8RZMJ0@Bjbj=#UZ|FuokmlHeIt?TRV?Ce~)Z{NSwd-nXX^z%EXUH|{z-SZP>&%T|L zo&CH1`nuTv^7eIqf4aTa()7BevL9R^{>QNTh{iU<7c&ovDsNyG-pFXZWAl?kyu6|u-FzmI#H8}* z^_TBTj@Dn`_Sx{kQ}dxkU*eUhjk&ikyeTw$;QHP+GCMMeqjAeM=gr3@Hz!Q87o8fk zV;%S2@;T2rHJ`qJv}>J!(*cQQ3FSG(_a}dOwlDwI_qkEo^4&$}LcAoaK0Q1j9IKVF Uz+qRVG|+Jjp00i_>zopr0G3Bs*8l(j literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui.png.meta new file mode 100644 index 00000000..6166a200 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: cb46e1d925af22d43a6f8bf0e1d459e6 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui_border.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui_border.png new file mode 100644 index 0000000000000000000000000000000000000000..6613a3d325a527ada017fedeaa3447d3728e9eba GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1|-8uW1a&k&H|6fVg?4j!ywFfJby(BP;jfK zi(`n!#J!Ug`C1GFT>tAy=rt%l~V#R=!D_zopr E0AM_3LI3~& literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui_border.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui_border.png.meta new file mode 100644 index 00000000..063fdf8a --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/ico_ui_border.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: c0c40ceac3c6df146a0fcd4e6b226540 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/orangeSquare.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/orangeSquare.png new file mode 100644 index 0000000000000000000000000000000000000000..c272180edf95f9229ae13d1eb1c0362d92759ab5 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5he4R}c>anMprDke xi(`n!#N(E8hH(Gnn1k=)1;xK#l381?e NJYD@<);T3K0RYm0RxJPk literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_atlas.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_atlas.png.meta new file mode 100644 index 00000000..6656fac5 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_atlas.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: e2279677842a8064fbae0bc889fb85ab +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_audio.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_audio.png new file mode 100644 index 0000000000000000000000000000000000000000..90c521249c6777aaef0ba7a53c81f9744892bc82 GIT binary patch literal 338 zcmV-Y0j>UtP)pG1W80eR49>SpcP=lCBcYGLS0>bnzOUB$=$nmpa1>)_YX*H&z?Q4 zKW_m;x3Y8lPUfcI`8W5fKq_?B&aspZ@*($BwK3mqu|_RaG7k zW7e!$CO}Of+ZY4|1^408XbHr2KwEx-I4f4Hc<}l2=igAdZCI^QP*9k#dGqFnPoF;h zdhz1Lw;+FMX=%*^O4$Ih3=Y>ZIPKfF?igP)pGyh%hsR5*=e7;wOdM@|`tO@R0(5O0Ul7=Rgzm=O@i@i>Hc%ZiId zO7L;|{Qv*o@B8=f-+ZI7zKTe>(l-zB+JC`?;nHEy`u~g=hrhZy}bMJ z<;$11U%!668K|xan+uE-6cjS~S^g`CzPiTqmz9Izhp-&OcVR__*II52KPA*SxPO1; z{Qu@L*RNl{E&in(*|TS{f`WoCj_uigll{hF7O8tjco`U(7`_QeGyMMX{qt94 zGY*Yc=M-MNc<~gd{t&v~YyLyQ&!0d4u3x|Yfr*L9F#!RAqk<9T?-*v>{mNy75FpRP!^4u5mBsLbjaBeH$hkkiF#P@d_cxIF8K#zrfds(v z<1+)ug+S(CY%X{Y1V4dcz>chmk&%&w_3JwZg#%L%#14U#J4L~u4HCn zV&d1*(h^{2XJ@{5@80JfJ9e<}eS5{t_Ui7>w{KqG28u2D_wU~_p!$!vT&gA}Cf3!~ z)^=&ts#W)tm6ab#OG{q@8r;eNNu4MFUs9F>VowG{Qhv!W2mu2F08Rp}xKNEjp#T5? M07*qoM6N<$g8J0>{r~^~ literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_bundle.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_bundle.png.meta new file mode 100644 index 00000000..22bbf6c7 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_bundle.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 58676a985ae875646b7be748cf4499fd +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_cog.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_cog.png new file mode 100644 index 0000000000000000000000000000000000000000..fd589a0f316096bff8afdd0b9fbe51b3138d5466 GIT binary patch literal 406 zcmV;H0crk;P)pGNJ&INR49>S7%;$$Ma)P_N~-w(|NnNse*L<~!^2Y|A|m4T`Sa&D zK)L6H46J$i^5wVFr%%7Csj0aDqCtF+I6h5sK%5a47Pjy2-@pHn0f-M02g+vxu>yup zet!Pet5>hS`}60|Kahrt7cah@K7INP5Dnsk#IIeu_8z1TriTU200NLAW@cu_%a<>| zGd4D!2-L6*DC~9a+_`*RU0tDnKmbyQ&Do-bg@tE82F#v4`zDZY4iz^C@j>D_IXS0+ zd_fGIz))>Dd-m*WkfKYMF1-a>PzMw?0ns2nNc_r`D{qB`g*!2v&Bw>bAuTP<4Rjd; z$caFM@{b)m7G-5+B?{t$0*w&}fL{57&DlmkToVxyaR5(fXD~ow1t%ano*A*Z0GPs} zK7IQ1Hok0944~0%+A3JOBUy07*qoM6N<$f=el@ A5C8xG literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_cog.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_cog.png.meta new file mode 100644 index 00000000..7097f779 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_cog.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: fb605a2688b31194887f2e7a6769235b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_cross.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_cross.png new file mode 100644 index 0000000000000000000000000000000000000000..a34a3e8a0f23b3390c7b578fa3b0db5b4157e266 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^{2anMpkRxq zi(`n!#AFE*hqn3i_w%|4YxV^sBqVHj@bmNY`=?HwI>-34Euhd@KwgD!((x>Y6Dbp# z{yTj5{{H^|0A?RYlMa3+g~}D&2Dxrw9E+~6jsDIsliyTe`DNaTybX*hy=^=!4Nsq) zoh`4F&GympQH#l>T;rd0%Ph8>>`R})_+*(u6%!j9gI(_3o%sQ3VLpGHc3Q5R2Y?GWPkz*2?=i?RSLvLP@!``-2LLki>)9IGl&ou7jI@_ zVwxes&!o_m$;a+x!NGp&`fr8rzZjypxw%=se*L>OK3}WmXZ3a#~{He%CPhKL53fHe|}*B34XG$Wca433081#!+HkYAG{3B#t@4XxMdh7 z-kit41oGW~7G}5||5;cV*qPbkd{!n_a0oC1ef5t0<;zG0U_f!*yv4xz-~q$SA8#1m z{Cv;w_}g=a#Shjp{P^=Tj}a+&Y8bG9fB*iqynOkx7HlUdoPZ{S0$2)&g@O1N5TE$} i|9>7((F_I#1_l6)Drz~&RO5yK0000anMprD7R zi(`n!#N-r)Cg0g+f71^z{`vFAK}6ZiQjLv^LD??)BjbYZBM~1oKYaaqRQ+$4QTl&& urcEYBMnPf;i)VSVEHL>!-)1cj55t^we1F}Q<{1OcWbkzLb6Mw<&;$TUXf4VB literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_folder.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_folder.png.meta new file mode 100644 index 00000000..b27732b6 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_folder.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 4f2c4b43188596b47866d41e1dc13c8a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_fonts.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_fonts.png new file mode 100644 index 0000000000000000000000000000000000000000..9ce1a4de4485e5d4ab57c8f94b8523f6b9c46436 GIT binary patch literal 465 zcmV;?0WSWDP)pGgGod|R49>S7&L&92sOfvj*io%q@*MsKYslD(4j-AK(S8*H32a{ z5C^QX-eF^7v(?hll3u=i`MJ4s=U({(1i)Ak z1j)U6_3FE*s3`l37caho_&_h304W8SUgRi_Yiw+sz{SPI0Wtt+C~JItJgb0!0F$h& zZ2$A;&tK{3>8W14crh8|MP+5>Y@nVcAdM_YhHP(cZdTIP*0%fb;luN9-@d&ADzpG07*naR49>S7%;$$#@AL2C2ox#U20gKydEdxi=gf9E~6v#0QCkDPZGFn|91TgZHnJV+geW=BWIHUH7T=g*&iqlDm zAoD@;Aa&UMY_M$Evb+EBfTc^9-T|q@rWs^Y%b7E0USZP+5(mjM-~r5%l9GKur+q@! z2;zgp88D+31BmMC>dt%f=FNAIMi33+gTxt#1PV@0PV3&id-ub|#bqOi&p;wj5*8Nj g0MQJC3@|VN0AR)IPx# literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_heart.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_heart.png.meta new file mode 100644 index 00000000..08f867a0 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_heart.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 20794834c0a413f408b80110d0fc73b8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_play.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_play.png new file mode 100644 index 0000000000000000000000000000000000000000..c441add0cc7487b51a19627c59917815d371bcb9 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^JRmj)8<3o<+3y6TI14-?iy0XB4ude`@%$AjK*4TL z7sn8diOCD(A3S`RIc@6Hx9motA6F)~8H$LAIO)agnDFoQb^Y6qkN4ZNbKPZrRButb zYUN7bzx=G}=jK%A=H=~^&{*R=g-zhc&(F{AcM7Y=F?&t;ucLK6VN2Uk!4 literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_play.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_play.png.meta new file mode 100644 index 00000000..99dc0ac9 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_play.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: d8306b1e159c72c4ebc9a4fc31debe60 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_prefab.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_prefab.png new file mode 100644 index 0000000000000000000000000000000000000000..abc435323589096e2a85aec7d8960643efc53863 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@)1s;*b3=DjSL74G){)!X^21ZU# z7sn8diOCWH3P%qe3VQzb?Os+F=AS|pp`Sm0F28o=N=(JCFE6kEclhw*<70gVI}e%F zY=wm%JG;g8_kDhTet!M`i3}b46Am`rcKGROu=R|A`qJgg!&z8ZPWa5X`}+-~%+uSu zIQPzuk00B3rRAzCD?R`I`r7>*Xk2tdmi=LqVsTN?xvew*{rUNMeO_K3yQ7JZj=uhT zo&Z^P4?|(I`PCvKSA87ZhSFd(4En4n3w<^}rF_9@CPI}n{!S1(iNl8h94r};L{@%I0 lJwKfJ=s80khJ*wLhVlgy_8;k}Y5;~5gQu&X%Q~loCIH(^ly?9C literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_prefab.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_prefab.png.meta new file mode 100644 index 00000000..08add5db --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_prefab.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: ed3789262161efa4fa33c85ca534590e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_scripts.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_scripts.png new file mode 100644 index 0000000000000000000000000000000000000000..c79b66833bb38b3cfcaf1efcc4ec2e967c4e7067 GIT binary patch literal 208 zcmeAS@N?(olHy`uVBq!ia0vp^f*>{r8<6y`Y?T61oCO|{#S9F5he4R}c>anMpkR}y zi(`n!#AJyt2RuSUOQpEEy=^;~7dh5Uu-M3ULQ+CPr{d?Qr`vOHZ?jEHPR?e!s9@(I zqvF4X@qc5&$45uY8iW`Q}D}Sb9lNz@<`{|2@AZZ>+NOL+*A7c8oPqMkguJP z3g0C5mCP%b&-8X^cw}(UpySSsM#iqoCmk5r*ci56nAf>4>xd7~H4L7velF{r5}E)W C9YpGB1uF+R49?nQay@;Ko}i^41#Q%Gz!~Ut&Ng9q{#qHiKe5>XW8pyLLIjyimz zo~Lmf|29p-ilVr9c3GATI_mI=!W7eVT{rCe{_i{t4*fW7N*=)UeSg6Rv^frN0}lP# zI1q&2_%nBDnr=aGgG0YIiZ+b!&6=yKI@B~x;l1v=u3Pg>`y?*{LjD0_ZSpkwGZC%; O0000anMpx|Xs z7sn8diOCXk8rs{Jx9arj=;)NP^UKxnE%MxEqN@7zNxcHYMFl&Kr4ssH!qr+B1sN5AfsnHN}ldU`@`+_*90 z-{0TI3!a^sd0j#32z#gSl{G6@t}J?WWo7ugckf>N`1($EFzHyoaN)uu4jdmof8Nfd knQxMqzv9ON1|A-Ulj|3ped&L9JJ5R!p00i_>zopr0A1^Qv;Y7A literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_star.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_star.png.meta new file mode 100644 index 00000000..cf31742c --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_star.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 21820ec6fc9dd0b4fbf42a3b93fdad4e +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_textures.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_textures.png new file mode 100644 index 0000000000000000000000000000000000000000..6aae96483f84bee1755eeed1b1ccb872539b13bb GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0vp@Ak4uAB#T}@sR2@)1s;*b3=DjSL74G){)!Z!;0aF` z#}JK)$qMWSi#}FfxDh|$N4$ZFq_nhtK}pG#){p1sSblzgYiqVofo%M~n1A2iMl*Gs zWfFb7VcWKAFWhD|01=Nzy8^W$Uv z!-o&^6NTQqd9z*M!7V>PNjU{YK6;Q{02{q_GJ)CB|uRqf8WsAOSp zZ~y<`!^7?Nli%8O{rU3v_4W1Pa`tsR{pM+D&-O1}x|Bch&tmufIL4LC8&7%(rZBLv ZG3=K0P3}1Foe1<3gQu&X%Q~loCIG7cdr<%Y literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_textures.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_textures.png.meta new file mode 100644 index 00000000..b96eb7b8 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/project/ico_textures.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 3e6b96a975eba1c43b2bad66fb7f8b4a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/purpleSquare.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/purpleSquare.png new file mode 100644 index 0000000000000000000000000000000000000000..dd219ac3778c1e3f6361c363ad6d5f6856c76813 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5he4R}c>anMprDMW zi(`n!#N?Q@#q%3Q4jge%lDKNHDse?dLIMLro;2e%hOPfU0o5^hy85}Sb4q9e0KFI- A82|tP literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/purpleSquare.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/purpleSquare.png.meta new file mode 100644 index 00000000..8bafc02b --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/purpleSquare.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: dc0ca9b32ae9fd049911671cf1a480bf +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/redSquare.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/redSquare.png new file mode 100644 index 0000000000000000000000000000000000000000..798457f49eef9b7e8c27d20db55a3570fd2c4074 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5he4R}c>anMprDMW zi(`n!#N?X8Cr>(XB_t^b_GC$1H3%^=FkoP?Wnq;2uXyMdP#uG(tDnm{r-UW|hN&5< literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/redSquare.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/redSquare.png.meta new file mode 100644 index 00000000..bee7a500 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/redSquare.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: fbdd7ecf39c13bf48a5bd02a1159c90b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorder.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..51afe67326b5bbb4358d880a8eec9d5a10cc769d GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprDSY zi(`mIZ}K0079J4>F@eHwZz4CDNJ~o_8yE&~xbaGuCR}0QSYTjnY{0;anMprD$k zi(`mIZ}K0079J4>F^#o;%l^&w;Sp&HWOn0~FlAuUICGANhk=EGQanMpkSG& zi(`mI@7u|STnz?149RRC*_Zz8viO-(Dzrc71^*i7zopr0L67hu>b%7 literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved.png.meta new file mode 100644 index 00000000..0956a030 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 4896b5aa9d63dec498136c21ffce735b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 32 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 100 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved02.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved02.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ed49d445d61396bf5e07beee7ae57f73a6d825 GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMpx|jw z7sn8b-nWwv@-{1ow8>X|RN!mid$4hKMA*vW8=3qE*yFR!<+w>I3vJGOX8UH&y4Nbu zoABe*hsE!II~Vwego>)TecE;KWO^b?^}&YL2T5y}-gvMwLGi@2)K0M<(&>}x&ctuv zj0-we9pIBc&3R@8%;d`;VQPAAyZRt1X8*cN}bWtEMVj*aM977LTh&(*zsT&!pJ bDn&8Aja;eBwVt^Y=q(0MS3j3^P6;G|$ literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved02.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved02.png.meta new file mode 100644 index 00000000..adbe7586 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved02.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: ff88be84254fb1f4b9a81a27ae0b2e81 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved02_darkBorders.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved02_darkBorders.png new file mode 100644 index 0000000000000000000000000000000000000000..2b313e46258bbd042a3eb1048f101f8cc698c393 GIT binary patch literal 336 zcmV-W0k8gvP)pG0!c(cR5*?8lQD{eKoo}GM9?N1(8?32rR|;~30^_%LpmEfI}_Me zkD!DcL>$3lJ%RR{LTx7R5jRx=%C`H%@Md(rZ$|JjnBuzbmN9n3VdL@xUgt*$!EwZC znqHqzJLZ^JM)RaJdzng*(>f+R^VLHg9Xt|3VhXxsLL_3PQr*j;-p ihdJ$x^^EWZ0N@Uw6N6qYJeYg{0000anMpkTSD zi(`mI@7u{6xeh4sxCrmw^5{vJ#*hE=pFVk}vMu=Xl8_e}1z#U1G~StAanMpkSJ( zi(`mIZ}N}-|M!asyk~nf|9>aD{lcmxGbAJ=#27zjDm+V95o)-?^f7Wn+yc$}jWe1X zT^KGg7jbrcoZslfaOw0B2So|fgewd)80}B^o^p64exhNqLyUWuV!&2jhng9O-u#K@ aVpvkPqanMpkTMB zi(`mIZ!$yU|NsAu84Ilh=CePV|G%(#et@aMR-Y5IrZawIR_J3%a%7WXP+<@K%&@Ax zlQHX-vw~Qnf>6U1r>{$l9p;K0b5LS<)yeRZ)o>s4Mg~bXj)pHy68|Mnu>60h=*cKy z%8+z`zi6@G67iG+yb5K?hl|WN#AO8S^Y;u|reo}=dg9DE9v%k48O%2poxC~+=qv_L LS3j3^P6anMpx|sz z7sn8b-nYSyT!$3|?(lMcv2?VVHs{xiOExOYFQuy}Hon#ASvfsO^*Ucq*SVgqbrxrI z8p;c{-Jh|N_vD@C)mIPO?q%anMpkSA$ zi(`mIZ?cb<*QBJx#K<52|JPf)xw)CKDKP}R)n9PSx&GguPWD%+kxyQ}eEH__#{cyM_8UjPhKR+;*eEaTkEK|kyY}5V^>;=vqM~3(gJ}VDT6GA zGY#?ww)k#xn;;jkj7hSfgTe~DWM4fq-Ic^ literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBorders.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBorders.png.meta new file mode 100644 index 00000000..8acff97b --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBorders.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 25da15ac84743244ab4c860cf8798ec8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBordersAlpha.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBordersAlpha.png new file mode 100644 index 0000000000000000000000000000000000000000..4ddd37ad4450952bb5dd03637b99f6e8afcc5281 GIT binary patch literal 200 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMpkS4! zi(`mI@7u{6IS(iZxSm%IJ1LTB<8~)FIO3=*tJ&TQkWnE^Zu!b#Q u<*Gj&xY4SW`DFF~9+z8&8?7tP3D~RGm`MM&30nws1%s!npUXO@geCyThex9T literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBordersAlpha.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBordersAlpha.png.meta new file mode 100644 index 00000000..b5dff0c3 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderCurved_darkBordersAlpha.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: f536c51d3da3f2e4ca93ac8773ec2ad8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty.png new file mode 100644 index 0000000000000000000000000000000000000000..188ed94dc5c375d5925ddcd7fd22b51cb1dbc595 GIT binary patch literal 114 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprDGU zi(`mIZ}K007M>{#UOWshQanMprDGU zi(`mIZ}K007M>{#UOWshQanMprE#= zi(`mIZ}K0079J4>H8w6r?w*4jEK4$4cFsu>?~yXdI`F_CVL`DnGc&_Jb{%V(} P+88`t{an^LB{Ts5H+UYQ literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty02.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty02.png.meta new file mode 100644 index 00000000..2220f57c --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty02.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 29b0e8156f6fb774faf129c83bc9ee33 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 32 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 100 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty03.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty03.png new file mode 100644 index 0000000000000000000000000000000000000000..ca376a89c1bc8fe52bea75c4d9312d7d03e7d85d GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprDSY zi(`mIZ}K0079J4>H8w8Bqih=#iX|EwBz#ZYldI70kuuQXk@z&TvyqYEi~^4&*Vda$ Qf%+IcUHx3vIVCg!08kDdzW@LL literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty03.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty03.png.meta new file mode 100644 index 00000000..f5e72784 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderEmpty03.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: c0a56b88a1b449045b3fe5f561aa12fa +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 32 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 100 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickEmpty.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickEmpty.png new file mode 100644 index 0000000000000000000000000000000000000000..ec9ead73db0edfdbe31bc68ee6b8b2f164137618 GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprE#= zi(`mIZ}K0079J4>H8w6r?w*4jEK4$4cFsu>?~yXdI`F_CVL`DnGc&_Jb{%V(} P+88`t{an^LB{Ts5H+UYQ literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickEmpty.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickEmpty.png.meta new file mode 100644 index 00000000..1ea7528f --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickEmpty.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: c456d5ac01d2aa843a63985497b04931 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickerEmpty.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickerEmpty.png new file mode 100644 index 0000000000000000000000000000000000000000..ca376a89c1bc8fe52bea75c4d9312d7d03e7d85d GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprDSY zi(`mIZ}K0079J4>H8w8Bqih=#iX|EwBz#ZYldI70kuuQXk@z&TvyqYEi~^4&*Vda$ Qf%+IcUHx3vIVCg!08kDdzW@LL literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickerEmpty.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickerEmpty.png.meta new file mode 100644 index 00000000..cd51603c --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareBorderThickerEmpty.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 7acc6bd588627b046bc1c9b3cd78a6c7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareCorners03.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareCorners03.png new file mode 100644 index 0000000000000000000000000000000000000000..38dc1bb8015f9a79cc3209cb6d4f0dc26efc98d9 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprE;@ zi(`mIZ}K0079I-*Wr2o_nyeWT8Z08x4Ubr7Oy*=vv1NYG+QlnTVIakwk=USU$zmkT a%*anMprEOz zi(`mIZ}K0079I-*Wr2o_nyeWT8Y~6k2Xd6f4txoG)0CKS;6U@mj3sGt2edqY-#KxB Zfk8H0fpdrTc0r&444$rjF6*2UngB35CO-fG literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareCornersEmpty02.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareCornersEmpty02.png.meta new file mode 100644 index 00000000..cd06c06b --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/squareCornersEmpty02.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: ca2f91cc405eb144dad970eb23db2f72 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_empty.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_empty.png new file mode 100644 index 0000000000000000000000000000000000000000..8e17561d53740055d922d1c24df9d17e43f6853d GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4j!ywFfJby(BP;j27 zi(^Pc>)UINTn!2$EEg=dZs|~naaq2Nho$>Va=f(C-B&-@1V!}h!%~jfT^e* zN!VYsf_J}mLhFYJ;r(I;OA~eF#1}kR=#X7=s`aA8^iRtk&p)gyY%c5nL|xI|`G!OD zYJWbcz6*~wPq4o$8FH-K-Z6^-W|B ZusuG#)AVYPb|TQF44$rjF6*2UngBkaQPThb literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_empty.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_empty.png.meta new file mode 100644 index 00000000..c471c809 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_empty.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: d1278357b25e10442b6ca6c24edc9781 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_slanted.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_slanted.png new file mode 100644 index 0000000000000000000000000000000000000000..c8cfc7fff7801ff59d70a57f7721f9e2828ae25b GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4j!ywFfJby(BQ1HB` zi(^Pc>(OZ^IS(5MFqmg5w*S`GKekfwVgk>x9~a^-9cZ#U-DBspJ>Kz6PpaDSe+A__ zyPu}YU271qWcPNMA+v>XVbKMameUK(6kPdC88eG^aCuBU9OgTe~DWM4f@ZM@O literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_slanted.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_slanted.png.meta new file mode 100644 index 00000000..73cfd0a1 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_slanted.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: c99a391f381fe534c80a193fe9f307a0 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_slanted_alpha.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/tileBars_slanted_alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..776309196aee7c5b4c5d5fdc8b19fd8e71cb8f62 GIT binary patch literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4j!ywFfJby(BP;if@ zi(^Pc>(ObJT!$Ta7^ZGf{Qv%w=i{o)!4f?mH?A&rSm1VMO4ZhDb&JwpZkBqtKmYK? z$a~Kh^A=3poWXSGiGlP3t@fD=<(55cEhiFH6nyyn85b7q;O3ZqIMks_<{ZanMprD(l zi(`ny)MSRn|NsB5X8vfU@Q>xF!Zs_PAl{Dq|BtgM7>cs3$cjmjRi5yJ$E2g3(fY@s sBMuA=B5#f<@1H$E`6@@nY`kL{fF?3{y85}Sb4q9e0HxC}A^-pY literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot.png.meta new file mode 100644 index 00000000..e58fbd38 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: ed7cb8f9a27664e48896c904189f0e2c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_darkBorder.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_darkBorder.png new file mode 100644 index 0000000000000000000000000000000000000000..705c72b68d0556f94b5f925f92a5b1705dd36d7e GIT binary patch literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9F5he4R}c>anMpkS}3 zi(`ny)Z`QfCRCSvfE$zna!EegGc4~5eJ3_kvI3YUi>`1jZP@GR48iDiCse|`M^{{BOjJ(Vxj81DZrT*FzgM+xXK N22WQ%mvv4FO#pS3SUCUy literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_darkBorder.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_darkBorder.png.meta new file mode 100644 index 00000000..e7b87881 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_darkBorder.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 27df4ca974a8eaf40803907859421506 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_whiteBorderAlpha.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_whiteBorderAlpha.png new file mode 100644 index 0000000000000000000000000000000000000000..2a081f6b2ab16c16b320321417083ca3aee328c4 GIT binary patch literal 176 zcmeAS@N?(olHy`uVBq!ia0vp^93afW1|*O0@9PFqoCO|{#S9F5he4R}c>anMpkR`x zi(`ny)MSRn|NsB5X8vfU@Q>xF!Zs_9KF$*X%$M35en<$cb~5a!<Hq)$ literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_whiteBorderAlpha.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_whiteBorderAlpha.png.meta new file mode 100644 index 00000000..bc6a601a --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteDot_whiteBorderAlpha.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 039dc89c76661c344b7776f8a47cc5a4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare.png new file mode 100644 index 0000000000000000000000000000000000000000..afc2459caaa4d1c9fdb4366d6e09313f89bb081c GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5he4R}c>anMprE9u wi(^Q|oa8_M|JyTbHgu|7T`c8h%A?845Sq&@Ya68K3{=G6>FVdQ&MBb@08(HWlK=n! literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare.png.meta new file mode 100644 index 00000000..42d51794 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: dfe6e0ac3e5f24740a17e14b65e08406 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 32 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 100 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha10.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha10.png new file mode 100644 index 0000000000000000000000000000000000000000..6480ee22a955b1ab75ba087e81c747a94a62cdfc GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprEX$ zi(^Q|oa8_M|J&;`vo>@Jon6eCIS^Qc)I$ztaD0e0stQU B9U}k$ literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha10.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha10.png.meta new file mode 100644 index 00000000..ae919caa --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha10.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 93b68213089b05943a651574eb7e2fb5 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 32 + textureSettings: + serializedVersion: 2 + filterMode: 0 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 100 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 32 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha15.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha15.png new file mode 100644 index 0000000000000000000000000000000000000000..e6f3c427d4cf110df50530e7da40f311824d3a74 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMkesKB zV~9m>@}K|z_e(LeHgq;R8Dt$;!MK=>hmTo8g5hrxv-7Tm-Nrzr44$rjF6*2UngB%K B9GCzA literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha15.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha15.png.meta new file mode 100644 index 00000000..25c1d718 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha15.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 5510cdd48a6aaaa439c95ef5b2fe9e28 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha25.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquareAlpha25.png new file mode 100644 index 0000000000000000000000000000000000000000..5219f2a0fcdb4ad7dfefa5b057bc22afdc753bcd GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5he4R}c>anMprEX$ zi(^Q|oa8_M|JSQ9vo>@Jon6eanMprEX$ zi(^Q|oa8_M|JU0xvo>@Jon6eanMprC@M zi(`mIZ}Ol2|Nl#}aWM!pwanMprEOz zi(`mIZ}Ol2|Lx70SsPe8Ts2J{dV-i;+V?RoPIO3=XqfaV+>7^ze35@zthVZO@Ib4c)I$ztaD0e0st)ZB(VSh literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare_fadeOut_bt.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare_fadeOut_bt.png.meta new file mode 100644 index 00000000..fa1b0d07 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/whiteSquare_fadeOut_bt.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: a40dc0d6372a9084fb45976308087290 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/yellowSquare.png b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/yellowSquare.png new file mode 100644 index 0000000000000000000000000000000000000000..c41f635d6173527df46ed81874904da9d02e1052 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|oCO|{#S9F5he4R}c>anMprDMW zi(`n!#N?XdmdTAG2aY%>NnABpmAE1!A%TIRB8Kti3H`P6f$A7MUHx3vIVCg!0K2#w A?*IS* literal 0 HcmV?d00001 diff --git a/Assets/Demigiant/DemiLib/Core/Editor/Imgs/yellowSquare.png.meta b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/yellowSquare.png.meta new file mode 100644 index 00000000..dda92ba8 --- /dev/null +++ b/Assets/Demigiant/DemiLib/Core/Editor/Imgs/yellowSquare.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 517a5bfe18f2ee04d9925db10be034e2 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 1024 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 1 + swizzle: 50462976 + cookieLightType: 1 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 1024 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Demigiant/readme_DOTweenPro.txt b/Assets/Demigiant/readme_DOTweenPro.txt new file mode 100644 index 00000000..9837c952 --- /dev/null +++ b/Assets/Demigiant/readme_DOTweenPro.txt @@ -0,0 +1,35 @@ +DOTween and DOTween Pro are copyright (c) 2014-2018 Daniele Giardini - Demigiant + +// IMPORTANT!!! ///////////////////////////////////////////// +// Upgrading DOTween from versions older than 1.2.000 /////// +// (or DOTween Pro older than 1.0.000) ////////////////////// +------------------------------------------------------------- +If you're upgrading your project from a version of DOTween older than 1.2.000 (or DOTween Pro older than 1.0.000) please follow these instructions carefully. +1) Import the new version in the same folder as the previous one, overwriting old files. A lot of errors will appear but don't worry +2) Close and reopen Unity (and your project). This is fundamental: skipping this step will cause a bloodbath +3) Open DOTween's Utility Panel (Tools > Demigiant > DOTween Utility Panel) if it doesn't open automatically, then press "Setup DOTween...": this will run the upgrade setup +4) From the Add/Remove Modules panel that opens, activate/deactivate Modules for Unity systems and for external assets (like TextMesh Pro) + +// GET STARTED ////////////////////////////////////////////// + +- After importing a new DOTween update, select DOTween's Utility Panel from the "Tools/Demigiant" menu (if it doesn't open automatically) and press the "Setup DOTween..." button to activate/deactivate Modules. You can also access a Preferences Tab from there to choose default settings for DOTween. + +// VISUAL SCRIPTING (PRO ONLY) +- To animate a gameObject, select it and choose "Add Component > DOTween > DOTween Animation" +- To animate a gameObject along a path, select it and choose "Add Component > DOTween > DOTween Path" + +// SCRIPTING +- In your code, add "using DG.Tweening" to each class where you want to use DOTween. +- You're ready to tween. Check out the links below for full documentation and license info. + + +// LINKS /////////////////////////////////////////////////////// + +DOTween website (documentation, examples, etc): http://dotween.demigiant.com +DOTween license: http://dotween.demigiant.com/license.php +DOTween repository (Google Code): https://code.google.com/p/dotween/ +Demigiant website (documentation, examples, etc): http://www.demigiant.com + +// NOTES ////////////////////////////////////////////////////// + +- DOTween's Utility Panel can be found under "Tools > Demigiant > DOTween Utility Panel" and also contains other useful options, plus a tab to set DOTween's preferences \ No newline at end of file diff --git a/Assets/Demigiant/readme_DOTweenPro.txt.meta b/Assets/Demigiant/readme_DOTweenPro.txt.meta new file mode 100644 index 00000000..2498034b --- /dev/null +++ b/Assets/Demigiant/readme_DOTweenPro.txt.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 24123b2fcdc15c943bed44e0c6beeec7 +labels: +- Tween +- Tweening +- Animation +- HOTween +- Paths +- VisualScripting +- VisualEditor +- iTween +- LeanTween +- DFTween +- Ease +- Easing +- Shake +- Punch +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Font/NewFonts.meta b/Assets/Font/NewFonts.meta new file mode 100644 index 00000000..63f96324 --- /dev/null +++ b/Assets/Font/NewFonts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a31f81079bdc97d4eb20219d1533bfc2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Font/NewFonts/CAIRO-BLACK SDF.asset b/Assets/Font/NewFonts/CAIRO-BLACK SDF.asset new file mode 100644 index 00000000..454f28ce --- /dev/null +++ b/Assets/Font/NewFonts/CAIRO-BLACK SDF.asset @@ -0,0 +1,373 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!28 &-7219867031045380596 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: CAIRO-BLACK Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + m_IsAlphaChannelOptional: 0 + serializedVersion: 2 + m_Width: 1024 + m_Height: 1024 + m_CompleteImageSize: 1048576 + m_MipsStripped: 0 + m_TextureFormat: 1 + m_MipCount: 1 + m_IsReadable: 1 + m_IsPreProcessed: 0 + m_IgnoreMipmapLimit: 0 + m_MipmapLimitGroupName: + m_StreamingMipmaps: 0 + m_StreamingMipmapsPriority: 0 + m_VTOnly: 0 + m_AlphaIsTransparency: 0 + m_ImageCount: 1 + m_TextureDimension: 2 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapU: 0 + m_WrapV: 0 + m_WrapW: 0 + m_LightmapFormat: 0 + m_ColorSpace: 1 + m_PlatformBlob: + image data: 1048576 + _typelessdata: 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003080b0d0e13131313131313131313131313131313070704080c0e0f13131313131313131313131313131313080705090c0e0f13131313131313131313131313131313130604010000000000000000000000000105090b0b0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0c0b09060100000000000000000000000000000000000000000000000000000000000004090c0e0f1313131313131313131313131313130b0a08040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080f14181a1b2020202020202020202020202020202014131114181b1b2020202020202020202020202020202014141115191b1c202020202020202020202020202020202013110d0701000000000000000000060c111517181a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a191816120d0700000000000000000000000000000000000000000000000000000002091015191b1c202020202020202020202020202020171714110c0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b131a202427272d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d201d202427282d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d21201e212528292d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d201d18130c04000000000000000911181d212425272727272727272727272727272727272727272727272727272727272727272727272727272525221e18110901000000000000000000000000000000000000000000000000030c141b212528292d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2423211c1710080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010b141d252b30333439393939393939393939393939393939392c292c313435393939393939393939393939393939392e2d2a2c31343539393939393939393939393939393939392c29241d160d04000000000009121b22292e31323434343434343434343434343434343434343434343434343434343434343434343434343432312e29231b13090000000000000000000000000000000000000000000000020c151e262c31343539393939393939393939393939393931302d28221a12080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131d262f363c404146464646464646464646464646464646463935373d4042464646464646464646464646464646463b3936373d4142464646464646464646464646464646464639352f281f160c0100000006111b242d343a3d3e404040404040404040404040404040404040404040404040404040404040404040404040403f3e3a342d251b11070000000000000000000000000000000000000000000009141e2730373d41424646464646464646464646464646463e3c39332c241a10050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1a252f3841484c4e5353535353535353535353535353535353454141484d4e5353535353535353535353535353535353464142494d4f535353535353535353535353535353535345403a31281d13070000010c18222d363f454a4b4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4c4a463f372d23180d01000000000000000000000000000000000000000004101b26303942494d4f5353535353535353535353535353534a49453e362c22170c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814202b36414a53585a606060606060606060606060606060605f524c4b53595b606060606060606060606060606060605f524c4b54595c606060606060606060606060606060605f514b433a2f24180d010005111d29343f485056585a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a585651493f34291e120600000000000000000000000000000000000000000915212c37424b54595c606060606060606060606060606060575550483e33281c1104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824303c48535c64676c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5d56535d65686c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5e56545d65686c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c5d554b4035291d1104000915212e3a45505a62656767676767676767676767676767676767676767676767676767676767676767676767676765625b51463a2e22160900000000000000000000000000000000000000000c1925313d49545d65686c6c6c6c6c6c6c6c6c6c6c6c6c6c6c64615a5045392d211408000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d1a2733404c58646e747979797979797979797979797979797976685d59656f757979797979797979797979797979797976685e59656f757979797979797979797979797979797976675d5145392c201306000b1724313d4a56626c7173737373737373737373737373737373737373737373737373737373737373737373737373726d62564a3e3125180b00000000000000000000000000000000000000020e1b2834414d59656f75797979797979797979797979797979716c6155493c3023170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a677480868686868686868686868686868686867a6d605b687581868686868686868686868686868686867a6e615c68758186868686868686868686868686868686796d6053473a2d201407000b1825323e4b5865717e808080808080808080808080808080808080808080808080808080808080808080808080807f7265584c3f3225190c00000000000000000000000000000000000000020f1c2935424f5c6875818686868686868686868686868686867e7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9393939393939393939393939393877a6d605b6875818e9393939393939393939393939393877a6e615c6875828f9393939393939393939393939393867a6d6053473a2d20140700101c2936434f5c6976828d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d83776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f939393939393939393939393938a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9a9f9f9f9f9f9f9f9f9f9f9f9f93877a6d605b6875818e9b9f9f9f9f9f9f9f9f9f9f9f9f94877a6e615c6875828f9b9f9f9f9f9f9f9f9f9f9f9f9f93867a6d6053473a2d20140700101c2936434f5c6976828f9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9083776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f9b9f9f9f9f9f9f9f9f9f9f9f978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7acacacacacacacacacaca093877a6d605b6875818e9ba8acacacacacacacacacaca194877a6e615c6875828f9ba8acacacacacacacacacaca093867a6d6053473a2d20140700101c2936434f5c6976828f9ca6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a69d9083776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8acacacacacacacacaca4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7b4b9b9b9b9b9b9b9b9ada093877a6d605b6875818e9ba8b4b9b9b9b9b9b9b9b9ada194877a6e615c6875828f9ba8b5b9b9b9b9b9b9b9b9ada093867a6d6053473a2d20140700101c2936434f5c6976828f9ca9b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3aa9d9083776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5b9b9b9b9b9b9b9b0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7b4c0c6c6c6c6c6c6baada093877a6d605b6875818e9ba8b4c1c6c6c6c6c6c6baada194877a6e615c6875828f9ba8b5c2c6c6c6c6c6c6b9ada093867a6d6053473a2d20140700101c2936434f5c6976828f9ca9b5c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b6aa9d9083776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2c6c6c6c6c6bdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7b4c0cdd2d2d2d2c6baada093877a6d605b6875818e9ba8b4c1ced2d2d2d2c7baada194877a6e615c6875828f9ba8b5c2ced2d2d2d2c6b9ada093867a6d6053473a2d20140700101c2936434f5c6976828f9ca9b5c2cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdc3b6aa9d9083776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2ced2d2d2cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7b4c0cddadfdfd3c6baada093877a6d605b6875818e9ba8b4c1cedbdfdfd4c7baada194877a6e615c6875828f9ba8b5c2cedbdfdfd3c6b9ada093867a6d6053473a2d20140700101c2936434f5c6976828f9ca9b5c2cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdc3b6aa9d9083776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbdfd7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7b4c0cddae7e0d3c6baada093877a6d605b6875818e9ba8b4c1cedbe7e0d4c7baada194877a6e615c6875828f9ba8b5c2cedbe8e0d3c6b9ada093867a6d6053473a2d20140700101c2936434f5c6976828f9ca9b5c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b6aa9d9083776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7b4c0cddae7e0d3c6baada093877a6d605b6875818e9ba8b4c1cedbe7e0d4c7baada194877a6e615c6875828f9ba8b5c2cedbe8e0d3c6b9ada093867a6d6053473a2d20140700101c2936434f5c6976828f9ca9b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4b4aa9d9083776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7b4c0cddae0e0d3c6baada093877a6d605b6875818e9ba8b4c1cedbe0e0d4c7baada194877a6e615c6875828f9ba8b5c2cedbe0e0d3c6b9ada093867a6d6053473a2d20140700101c2936434f5c6976828f9ca7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a79d9083776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7b4c0cdd4d4d4d3c6baada093877a6d605b6875818e9ba8b4c1ced4d4d4d4c7baada194877a6e615c6875828f9ba8b5c2ced4d4d4d3c6b9ada093867a6d6053473a2d20140700101c2936434f5c6976828f9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9083776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7b4c0c7c7c7c7c7c6baada093877a6d605b6875818e9ba8b4c1c7c7c7c7c7c7baada194877a6e615c6875828f9ba8b5c2c7c7c7c7c7c6b9ada093867a6d6053473a2d20140700101c2936434f5c6976828d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d83776a5d5044372a1d1100000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7b4babababababababaada093877a6d605b6875818e9ba8b4babababababababaada194877a6e615c6875828f9ba8b5bababababababab9ada093867a6d6053473a2d201407000c1925323f4c5865727f818181818181818181818181818181818181818181818181818181818181818181818181817f7266594c3f3326190c00000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa7adadadadadadadadadada093877a6d605b6875818e9ba8adadadadadadadadadada194877a6e615c6875828f9ba8adadadadadadadadadada093867a6d6053473a2d201407000b1824313e4a56626d7274747474747474747474747474747474747474747474747474747474747474747474747474726d63574b3e3225180c00000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9aa1a1a1a1a1a1a1a1a1a1a1a093877a6d605b6875818e9ba1a1a1a1a1a1a1a1a1a1a1a194877a6e615c6875828f9ba1a1a1a1a1a1a1a1a1a1a1a093867a6d6053473a2d201407000915222e3a46515b62656767676767676767676767676767676767676767676767676767676767676767676767676766635b51463b2f22160a00000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a6774818d9494949494949494949494949493877a6d605b6875818e9494949494949494949494949494877a6e615c6875828f9494949494949494949494949493867a6d6053473a2d2014070006121e29343f495156585a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a595751493f352a1e120600000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e1b2734414e5a677481878787878787878787878787878787877a6d605b687581878787878787878787878787878787877a6e615c68758187878787878787878787878787878786796d6053473a2d20140700010d18232d373f464a4c4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4c4b463f372e23180d0200000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a776c6054606d7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a786c6054606d7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a786c605346392d201306000006111b252d343a3e3f414141414141414141414141414141414141414141414141414141414141414141414141413f3e3b352e251c12070000000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d676d6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6c655b525d686d6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6c665b525d686d6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6e6c655b5044372b1f120500000009131b23292e31323434343434343434343434343434343434343434343434343434343434343434343434343433322f2a231c130a000000000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c555d6061616161616161616161616161616161605b534c565d6061616161616161616161616161616161605b544c565d6061616161616161616161616161616161605b53493f33271b0f03000000010911181e222425272727272727272727272727272727272727272727272727272727272727272727272727272625221e18120a01000000000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a434c515454545454545454545454545454545454535049434c52545454545454545454545454545454545453504a444c52545454545454545454545454545454545453504941382d22170b000000000000060d121518191b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b191816120d070000000000000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28313a4145474747474747474747474747474747474746443f3a4145474747474747474747474747474747474746443f3a4145474747474747474747474747474747474746443f382f261b1106000000000000000106090b0c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0c0c0a0602000000000000000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f282f35393a3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3937332f35393a3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3938332f35393a3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3937332d261d140a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161e24292c2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2b2724292c2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2b2824292c2d2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2d2b27221b140b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001020f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191d202121212121212121212121212121212121201f1b191d202121212121212121212121212121212121201f1c191d202121212121212121212121212121212121201f1b17110a02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030608090e070f1c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d1113141414141414141414141414141414141413120f0d1113141414141414141414141414141414141413120f0d1113141414141414141414141414141414141413120f0b06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f1315161b14131c2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001040607080808080808080808080808080808080605030104060708080808080808080808080808080808060603010407070808080808080808080808080808080806050300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070e151b1f21222821201d2935424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101820262b2e2f342e2d292535424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020b18222a32373b3c413a39353035424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a141d2a343c4347494e4746413a32424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111c262f3c464e53555b54524c443e424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b17222d38424e585f6267615e565047424f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1c28333f4a545f6a6f746d68625a534d4f5c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030c19232b3844505b666f7c817a716c625f57515c6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b151e2a36414c56606c78838e857e766e69605c556875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007121d27303946525e68727f8b95928b827b736d67606875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c18232e39434f59616e7a85929f9e948f868079706b6875828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101c2834404b55606b75818e97a2a69f98928c847d746d75828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d1a242c3845515c67707d89939ea9b0aaa39f969189817a75828f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f2b37424d57606d7984919da5afbbb4aea8a09d938e857e818f9ba8b5c2cedbe3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28313a46535f69737f8c96a0acb7c1bfbab2aca59e97928b87929facb9c5d2dfe3d7cabdb0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a43505a616e7b86929fa8b2bdc9cbc3bdb8afa9a19e999299a3afbbc7d4e0e3d7cabdb0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c55616c76828f98a3aebac3ced7cec8c1bbb3adaba39fa3abb5c0cbd7e3e3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d67717e8a949faab4bfc9cfd6d9d4cdc5beb9b5afacafb5bdc7d1dce8e3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a85919ea1a8afb9bdc4ccd5dad7cfcac7c0bbb9bbc0c7cfd9e3eee3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a818991969da5adb2bac0c9ced8dad6d1cbc7c5c7cbd1d9e1ebf5e3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d676d747d848e939ea1a8afb9bdc4ccd2d9dcd7d4d2d4d7dce3ebf3f0e3d7cabdb0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414c555d606b707a818991969da5acb2bbc0c7d0d8dde0dfe0e3e8eef5fdf0e3d7cabdb0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d19242f3a434c515961676d747d848e939ea1a8afb6bec4ccd2d9e2e8eef4f9fffdf0e3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008131e28313a41454f555d606b707a818991969fa4acb2bbc0c7d0d8dde4ebf4f9f1f0e3d7cabdb0a4978a7d7164574a3e3124170b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010c161f282f353d434c515960676d747d848d939aa1a8afb6bec4ccd2d9e2e8e4e4e4e3d7cabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040d161e2429313a41454f555d606b7079818891969fa4acb2bbc0c7d0d8ddd8d8d8d8d7cabdb0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191f282f353d434c515960676d747d848d939aa1a8afb6bec4ccd2cbcbcbcbcbcabdb0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d161e2429313a41454f555d606b7079808891969fa4acb2bbc0bebebebebebebebdb0a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191f282f353d434b515960676d747d848d939aa0a8afb6b1b1b1b1b1b1b1b1b0a4978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d161e2429313a41454f555d606b7079808891969fa4aca5a5a5a5a5a5a5a5a5a4978a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13191f282f353d434b515960676d747d848d939a9898989898989898989898978a7d7164574a3e3124170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001080d161d2429313a40454f555d606b707980878b8b8b8b8b8b8b8b8b8b8b8b8b8a7d7164574a3e3124170b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13181f282f353d434b515960676d747c7e7e7e7e7e7e7e7e7e7e7e7e7e7e7b6e6155483b2e221508000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d161d2429313a40454f555d606a6f72727272727272727272727272726e695f53463a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13181f282f353d434b515860626565656565656565656565656565615f574d42362a1e1205000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d161d2429313940454e5456585858585858585858585858585855534d453b31261a0e0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c13181f282f353d4348494b4b4b4b4b4b4b4b4b4b4b4b4b4b4846423b33291f140900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d161d242932383b3c3f3f3f3f3f3f3f3f3f3f3f3f3f3f3b3a36312921180d030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040c121821272c2e2f32323232323232323232323232322e2d2a261f180f060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001070d161b1f2223252525252525252525252525252522211e1a140d0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13151618181818181818181818181818181514120e090300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030709090c0c0c0c0c0c0c0c0c0c0c0c0c0c08070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} + m_Name: CAIRO-BLACK SDF + m_EditorClassIdentifier: + hashCode: 1538572653 + material: {fileID: 2039440194532944411} + materialHashCode: 448544173 + m_Version: 1.1.0 + m_SourceFontFileGUID: b62ffe21fe511f84d9865b325ebeb7c4 + m_SourceFontFile_EditorRef: {fileID: 12800000, guid: b62ffe21fe511f84d9865b325ebeb7c4, + type: 3} + m_SourceFontFile: {fileID: 12800000, guid: b62ffe21fe511f84d9865b325ebeb7c4, type: 3} + m_AtlasPopulationMode: 1 + m_FaceInfo: + m_FaceIndex: 0 + m_FamilyName: Cairo + m_StyleName: Black + m_PointSize: 90 + m_Scale: 1 + m_UnitsPerEM: 1000 + m_LineHeight: 168.66 + m_AscentLine: 117.270004 + m_CapLine: 60 + m_MeanLine: 45 + m_Baseline: 0 + m_DescentLine: -51.390003 + m_SuperscriptOffset: 117.270004 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -51.390003 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -9 + m_UnderlineThickness: 4.5 + m_StrikethroughOffset: 18 + m_StrikethroughThickness: 4.5 + m_TabWidth: 20 + m_GlyphTable: + - m_Index: 360 + m_Metrics: + m_Width: 62.640625 + m_Height: 18.09375 + m_HorizontalBearingX: 4.40625 + m_HorizontalBearingY: 18.09375 + m_HorizontalAdvance: 71.375 + m_GlyphRect: + m_X: 10 + m_Y: 10 + m_Width: 64 + m_Height: 19 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 67 + m_Metrics: + m_Width: 38.515625 + m_Height: 13.140625 + m_HorizontalBearingX: 8.28125 + m_HorizontalBearingY: -5.40625 + m_HorizontalAdvance: 55.078125 + m_GlyphRect: + m_X: 93 + m_Y: 10 + m_Width: 39 + m_Height: 14 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + - m_Index: 21 + m_Metrics: + m_Width: 34.640625 + m_Height: 59.40625 + m_HorizontalBearingX: 4.6875 + m_HorizontalBearingY: 59.40625 + m_HorizontalAdvance: 50.40625 + m_GlyphRect: + m_X: 151 + m_Y: 10 + m_Width: 36 + m_Height: 60 + m_Scale: 1 + m_AtlasIndex: 0 + m_ClassDefinitionType: 0 + m_CharacterTable: + - m_ElementType: 1 + m_Unicode: 8230 + m_GlyphIndex: 360 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 95 + m_GlyphIndex: 67 + m_Scale: 1 + - m_ElementType: 1 + m_Unicode: 49 + m_GlyphIndex: 21 + m_Scale: 1 + m_AtlasTextures: + - {fileID: -7219867031045380596} + m_AtlasTextureIndex: 0 + m_IsMultiAtlasTexturesEnabled: 0 + m_ClearDynamicDataOnBuild: 0 + m_UsedGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 83 + m_Height: 38 + - m_X: 83 + m_Y: 0 + m_Width: 58 + m_Height: 33 + - m_X: 141 + m_Y: 0 + m_Width: 55 + m_Height: 79 + m_FreeGlyphRects: + - m_X: 0 + m_Y: 79 + m_Width: 1023 + m_Height: 944 + - m_X: 0 + m_Y: 38 + m_Width: 141 + m_Height: 985 + - m_X: 83 + m_Y: 33 + m_Width: 58 + m_Height: 990 + - m_X: 196 + m_Y: 0 + m_Width: 827 + m_Height: 1023 + m_fontInfo: + Name: + PointSize: 0 + Scale: 0 + CharacterCount: 0 + LineHeight: 0 + Baseline: 0 + Ascender: 0 + CapHeight: 0 + Descender: 0 + CenterLine: 0 + SuperscriptOffset: 0 + SubscriptOffset: 0 + SubSize: 0 + Underline: 0 + UnderlineThickness: 0 + strikethrough: 0 + strikethroughThickness: 0 + TabWidth: 0 + Padding: 0 + AtlasWidth: 0 + AtlasHeight: 0 + atlas: {fileID: 0} + m_AtlasWidth: 1024 + m_AtlasHeight: 1024 + m_AtlasPadding: 9 + m_AtlasRenderMode: 4165 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + m_FontFeatureTable: + m_GlyphPairAdjustmentRecords: [] + fallbackFontAssets: [] + m_FallbackFontAssetTable: [] + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: b62ffe21fe511f84d9865b325ebeb7c4 + pointSizeSamplingMode: 0 + pointSize: 90 + padding: 9 + packingMode: 0 + atlasWidth: 1024 + atlasHeight: 1024 + characterSetSelectionMode: 7 + characterSequence: + referencedFontAssetGUID: + referencedTextAssetGUID: + fontStyle: 0 + fontStyleModifier: 0 + renderMode: 4165 + includeFontFeatures: 0 + m_FontWeightTable: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + fontWeights: [] + normalStyle: 0 + normalSpacingOffset: 0 + boldStyle: 0.75 + boldSpacing: 7 + italicStyle: 35 + tabSize: 10 +--- !u!21 &2039440194532944411 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: CAIRO-BLACK Atlas Material + m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: -7219867031045380596} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _Ambient: 0.5 + - _Bevel: 0.5 + - _BevelClamp: 0 + - _BevelOffset: 0 + - _BevelRoundness: 0 + - _BevelWidth: 0 + - _BumpFace: 0 + - _BumpOutline: 0 + - _ColorMask: 15 + - _Diffuse: 0.5 + - _FaceDilate: 0 + - _FaceUVSpeedX: 0 + - _FaceUVSpeedY: 0 + - _GlowInner: 0.05 + - _GlowOffset: 0 + - _GlowOuter: 0.05 + - _GlowPower: 0.75 + - _GradientScale: 10 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0.3 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 0.9 + - _ScaleRatioB: 0.73125 + - _ScaleRatioC: 0.73125 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 1024 + - _TextureWidth: 1024 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0 + - _UnderlayOffsetY: 0 + - _UnderlaySoftness: 0 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} + - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} + m_BuildTextureStacks: [] diff --git a/Assets/Font/NewFonts/CAIRO-BLACK SDF.asset.meta b/Assets/Font/NewFonts/CAIRO-BLACK SDF.asset.meta new file mode 100644 index 00000000..fc096973 --- /dev/null +++ b/Assets/Font/NewFonts/CAIRO-BLACK SDF.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f9650ff3b67d45e42aa51501d10136f4 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Font/NewFonts/CAIRO-BLACK.TTF b/Assets/Font/NewFonts/CAIRO-BLACK.TTF new file mode 100644 index 0000000000000000000000000000000000000000..6ce2571b4bf8e4053ad41dfb9698853f14d1cd56 GIT binary patch literal 175364 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 z

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

  • =w^RP@0|3Ya`b2+K3i9^&^iKltwIk=r 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�-MaA$~7wt|g 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 Qz`xT9?vQ@u>x9mK0e?G_{{R30 literal 0 HcmV?d00001 diff --git a/Assets/Font/NewFonts/CAIRO-BOLD.TTF.meta b/Assets/Font/NewFonts/CAIRO-BOLD.TTF.meta new file mode 100644 index 00000000..ff837543 --- /dev/null +++ b/Assets/Font/NewFonts/CAIRO-BOLD.TTF.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 7cf69ed96c6a9f64597118d8c095ff90 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Cairo + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL SDF.asset b/Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL SDF.asset new file mode 100644 index 00000000..f29804f5 --- /dev/null +++ b/Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL SDF.asset @@ -0,0 +1,292 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71c1514a6bd24e1e882cebbe1904ce04, type: 3} + m_Name: COCOGOOSE-PRO-BOLD-TRIAL SDF + m_EditorClassIdentifier: + hashCode: 0 + material: {fileID: 2742155659043687715} + materialHashCode: 0 + m_Version: 1.1.0 + m_SourceFontFileGUID: 88f51c9c5f666d141a1f286337c3f821 + m_SourceFontFile_EditorRef: {fileID: 12800000, guid: 88f51c9c5f666d141a1f286337c3f821, + type: 3} + m_SourceFontFile: {fileID: 12800000, guid: 88f51c9c5f666d141a1f286337c3f821, type: 3} + m_AtlasPopulationMode: 1 + m_FaceInfo: + m_FaceIndex: 0 + m_FamilyName: CocogooseProTrial + m_StyleName: Bold + m_PointSize: 90 + m_Scale: 1 + m_UnitsPerEM: 1860 + m_LineHeight: 102.48387 + m_AscentLine: 75.629036 + m_CapLine: 68 + m_MeanLine: 59 + m_Baseline: 0 + m_DescentLine: -17.17742 + m_SuperscriptOffset: 75.629036 + m_SuperscriptSize: 0.5 + m_SubscriptOffset: -17.17742 + m_SubscriptSize: 0.5 + m_UnderlineOffset: -9.193548 + m_UnderlineThickness: 4.596774 + m_StrikethroughOffset: 23.6 + m_StrikethroughThickness: 4.596774 + m_TabWidth: 23 + m_GlyphTable: [] + m_CharacterTable: [] + m_AtlasTextures: + - {fileID: 6833292494527359732} + m_AtlasTextureIndex: 0 + m_IsMultiAtlasTexturesEnabled: 0 + m_ClearDynamicDataOnBuild: 0 + m_UsedGlyphRects: [] + m_FreeGlyphRects: + - m_X: 0 + m_Y: 0 + m_Width: 1023 + m_Height: 1023 + m_fontInfo: + Name: + PointSize: 0 + Scale: 0 + CharacterCount: 0 + LineHeight: 0 + Baseline: 0 + Ascender: 0 + CapHeight: 0 + Descender: 0 + CenterLine: 0 + SuperscriptOffset: 0 + SubscriptOffset: 0 + SubSize: 0 + Underline: 0 + UnderlineThickness: 0 + strikethrough: 0 + strikethroughThickness: 0 + TabWidth: 0 + Padding: 0 + AtlasWidth: 0 + AtlasHeight: 0 + atlas: {fileID: 0} + m_AtlasWidth: 1024 + m_AtlasHeight: 1024 + m_AtlasPadding: 9 + m_AtlasRenderMode: 4165 + m_glyphInfoList: [] + m_KerningTable: + kerningPairs: [] + m_FontFeatureTable: + m_GlyphPairAdjustmentRecords: [] + fallbackFontAssets: [] + m_FallbackFontAssetTable: [] + m_CreationSettings: + sourceFontFileName: + sourceFontFileGUID: 88f51c9c5f666d141a1f286337c3f821 + pointSizeSamplingMode: 0 + pointSize: 90 + padding: 9 + packingMode: 0 + atlasWidth: 1024 + atlasHeight: 1024 + characterSetSelectionMode: 7 + characterSequence: + referencedFontAssetGUID: + referencedTextAssetGUID: + fontStyle: 0 + fontStyleModifier: 0 + renderMode: 4165 + includeFontFeatures: 0 + m_FontWeightTable: + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + - regularTypeface: {fileID: 0} + italicTypeface: {fileID: 0} + fontWeights: [] + normalStyle: 0 + normalSpacingOffset: 0 + boldStyle: 0.75 + boldSpacing: 7 + italicStyle: 35 + tabSize: 10 +--- !u!21 &2742155659043687715 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: COCOGOOSE-PRO-BOLD-TRIAL Atlas Material + m_Shader: {fileID: 4800000, guid: 68e6db2ebdc24f95958faec2be5558d6, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _FaceTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 6833292494527359732} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OutlineTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _Ambient: 0.5 + - _Bevel: 0.5 + - _BevelClamp: 0 + - _BevelOffset: 0 + - _BevelRoundness: 0 + - _BevelWidth: 0 + - _BumpFace: 0 + - _BumpOutline: 0 + - _ColorMask: 15 + - _Diffuse: 0.5 + - _FaceDilate: 0 + - _FaceUVSpeedX: 0 + - _FaceUVSpeedY: 0 + - _GlowInner: 0.05 + - _GlowOffset: 0 + - _GlowOuter: 0.05 + - _GlowPower: 0.75 + - _GradientScale: 10 + - _LightAngle: 3.1416 + - _MaskSoftnessX: 0 + - _MaskSoftnessY: 0 + - _OutlineSoftness: 0 + - _OutlineUVSpeedX: 0 + - _OutlineUVSpeedY: 0 + - _OutlineWidth: 0 + - _PerspectiveFilter: 0.875 + - _Reflectivity: 10 + - _ScaleRatioA: 1 + - _ScaleRatioB: 1 + - _ScaleRatioC: 1 + - _ScaleX: 1 + - _ScaleY: 1 + - _ShaderFlags: 0 + - _Sharpness: 0 + - _SpecularPower: 2 + - _Stencil: 0 + - _StencilComp: 8 + - _StencilOp: 0 + - _StencilReadMask: 255 + - _StencilWriteMask: 255 + - _TextureHeight: 1024 + - _TextureWidth: 1024 + - _UnderlayDilate: 0 + - _UnderlayOffsetX: 0 + - _UnderlayOffsetY: 0 + - _UnderlaySoftness: 0 + - _VertexOffsetX: 0 + - _VertexOffsetY: 0 + - _WeightBold: 0.75 + - _WeightNormal: 0 + m_Colors: + - _ClipRect: {r: -32767, g: -32767, b: 32767, a: 32767} + - _EnvMatrixRotation: {r: 0, g: 0, b: 0, a: 0} + - _FaceColor: {r: 1, g: 1, b: 1, a: 1} + - _GlowColor: {r: 0, g: 1, b: 0, a: 0.5} + - _MaskCoord: {r: 0, g: 0, b: 32767, a: 32767} + - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectFaceColor: {r: 0, g: 0, b: 0, a: 1} + - _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecularColor: {r: 1, g: 1, b: 1, a: 1} + - _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5} + m_BuildTextureStacks: [] +--- !u!28 &6833292494527359732 +Texture2D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: COCOGOOSE-PRO-BOLD-TRIAL Atlas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + m_IsAlphaChannelOptional: 0 + serializedVersion: 2 + m_Width: 0 + m_Height: 0 + m_CompleteImageSize: 0 + m_MipsStripped: 0 + m_TextureFormat: 1 + m_MipCount: 1 + m_IsReadable: 1 + m_IsPreProcessed: 0 + m_IgnoreMipmapLimit: 0 + m_MipmapLimitGroupName: + m_StreamingMipmaps: 0 + m_StreamingMipmapsPriority: 0 + m_VTOnly: 0 + m_AlphaIsTransparency: 0 + m_ImageCount: 1 + m_TextureDimension: 2 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapU: 0 + m_WrapV: 0 + m_WrapW: 0 + m_LightmapFormat: 0 + m_ColorSpace: 1 + m_PlatformBlob: + image data: 0 + _typelessdata: + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: diff --git a/Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL SDF.asset.meta b/Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL SDF.asset.meta new file mode 100644 index 00000000..1616b7cd --- /dev/null +++ b/Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL SDF.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2d1fdd99a68e87f46a9fdd01c22fa4c1 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL.TTF b/Assets/Font/NewFonts/COCOGOOSE-PRO-BOLD-TRIAL.TTF new file mode 100644 index 0000000000000000000000000000000000000000..4c729b7f44b302420a540739669b39c62fada309 GIT binary patch literal 250132 zcmd44cbt?(@;^TP#K}1p$R{K@V)V3Exk&*~IdJBhMOhU)}9TZNiTmZMFv< z8aQTLpS#|F_}?~hdncQ%>cClJ+Liy4)qZIc#@pfh>F3R#v2a7J`&;<=0-MeA;p}8V2vGRB3d&VsNrpc|8Tb-@S(T`+s1k$eJB8_5`^#3b zo~u@AFTtO^d&0j~y|}7ZJ!3sz?A`N)UaTknqSp&A)U$Q#SkG6l?xEeTUcRR1z@G5m zuW$6e`s)7A_8i!2UC%|UdcXM3d95dJJ90#O;>eM0Q(o^mxmT~rJ#Du3wsPA=$~j^$ zTg+BwtF(24R*bZrXPa$XWLs{#%66;m4%-v9=WK7<-m@LE{nJ**1ZHO~SPARIrm$&j zE?ddgvm4mm>|u70{UQiLL?{xHLbcFa7$-~>E)zBgHw(85J5V-NMO9Um6;+iT;lJvR z9V^PC(MY67>IgrVmL}qg5(!766~SmM0l%(>-^XInNLW?WM73I4R$5hwXmy2LfwHSg z#42LZii)z*L`6ALNF*W^fJUm-it_4e{<|0eRf$3*tQU%fV`Weol&z{P!|#y}7K&9? zS101Cswiq@84yiC-I0ot@<>=oB&sB+9T~=-N`T>ta4eRP$|@8rkN+j&WioMvoJC8k zfDv9N{zEb9pqk2+h^j;qP)jA$Qc<0Vk*=V=0Qa2n%0vZ;1sUzgc}D?&NTSu%D62>q zWuqiOE{duGg-FN7t)xbl#lqM|#ln9XZw54~tV~s6F;GYRtGZ*AWFaAuz>G>!q|`^y zDy%pWhl){L#9TG~8)Tr@0&+FWTiKGU;1j3^xP<~BH;{0Hw!@DAR6q}Qq%Oq%h3?S{ z$=1FjIbrAVZwjI3NTz1zVgcYnuf*Dcg%)9y7=6iwOrllJIekzV51KCcXZNj~SSgH4 z=Z+dJz)0-?6E{%er%{+iSB#%+lbRC2&yCae%+Jtvc$Z5-G0@P z$Z~lkXCyDuspVB=7j-Li*rj%g>L}GFF)QZtMx)+W z6sJ=OOHQGMAj$6ZHer@a65)rsk)46`5bnq-61H934$9w z$O(mVvZ3Sq%ECZ#@&ILsFnM&;>x)F7;|Dra#Zgco#w6%>kx76hlqu112skRAF%VWPtqDD}DAiX;cUo*>k#K((d0efWoYC0CZH{bXk_A@_l9 z3YK^Zy@|Ecr%z9;Mg36hYuC0Z3MSh699>j-ZI#E_&%QPRzje2holejTb!}(6yV~ij zmYhoGwKK4a0LTmE76^L0!2+i*s0K^0N8N6R%_hK{XOlO|t6&z-2WJ7zX;Hka46Gsi z4K|{hb*v~Vk1-~esiM3w6wr1TyEDZ+$`?l;pt!nx4ThjLk72P|x+p^)Jo`qdYpME7JCsWh^x}sHzMW!&F9dD>OBZ z^Pw^Mg5B+C&bvxN=&L>Y(o1aQJ1agrJLr7D6LS07%&r)H!-R>OM|U6J(d!F({?F~7 z`uWQ2*VtKazR8BaJfxp5;Puo59eIg~x1K$9+r*qwXRyxa^|=QO1rJL=ImmwkIe0
    y^tBgomO^|7 zErLC~|MhlKfjDt9NzBZl_v0BrV+ef^CMWF�_?6qjQFmkQBb-eea~w_MTHmd0WTL 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 FV1jBYxiJ6$ literal 0 HcmV?d00001 diff --git a/Assets/NewUI/MainMenu/PIPUZZLE Text 1.png.meta b/Assets/NewUI/MainMenu/PIPUZZLE Text 1.png.meta new file mode 100644 index 00000000..d3f79523 --- /dev/null +++ b/Assets/NewUI/MainMenu/PIPUZZLE Text 1.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 824af825033768f419b65772028e354b +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PipeOut/Scenes/HomeScene.unity b/Assets/PipeOut/Scenes/HomeScene.unity index 3cbb4959..6dfc4d29 100644 --- a/Assets/PipeOut/Scenes/HomeScene.unity +++ b/Assets/PipeOut/Scenes/HomeScene.unity @@ -1238,6 +1238,81 @@ Material: - _ShadowColor: {r: 0, g: 0, b: 0, a: 1} - _ShineColor: {r: 1, g: 1, b: 1, a: 1} m_BuildTextureStacks: [] +--- !u!1 &321544146 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 321544147} + - component: {fileID: 321544149} + - component: {fileID: 321544148} + m_Layer: 5 + m_Name: MedalIcon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &321544147 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 321544146} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 643849272} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 52.899994, y: 0} + m_SizeDelta: {x: 94, y: 84} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &321544148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 321544146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a5a0fb12940a61840991b11982604880, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &321544149 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 321544146} + m_CullTransparentMesh: 1 --- !u!1 &333043760 GameObject: m_ObjectHideFlags: 0 @@ -1449,6 +1524,104 @@ CanvasGroup: m_Interactable: 1 m_BlocksRaycasts: 1 m_IgnoreParentGroups: 0 +--- !u!114 &363640466 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790415148045804893} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: 1 + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: f9650ff3b67d45e42aa51501d10136f4, type: 2} + m_sharedMaterial: {fileID: 2039440194532944411, guid: f9650ff3b67d45e42aa51501d10136f4, + type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 33.95 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!222 &363640467 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790415148045804893} + m_CullTransparentMesh: 1 --- !u!114 &363785350 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1708,6 +1881,81 @@ CanvasGroup: m_Interactable: 1 m_BlocksRaycasts: 1 m_IgnoreParentGroups: 0 +--- !u!1 &382341784 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 382341785} + - component: {fileID: 382341787} + - component: {fileID: 382341786} + m_Layer: 5 + m_Name: Name + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &382341785 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382341784} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1326188069} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0} + m_AnchorMax: {x: 0.5, y: 0} + m_AnchoredPosition: {x: 8.35, y: 456} + m_SizeDelta: {x: 562, y: 101} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &382341786 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382341784} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 824af825033768f419b65772028e354b, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &382341787 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382341784} + m_CullTransparentMesh: 1 --- !u!1001 &386392574 PrefabInstance: m_ObjectHideFlags: 0 @@ -2797,7 +3045,7 @@ PrefabInstance: serializedVersion: 2 m_Modification: serializedVersion: 3 - m_TransformParent: {fileID: 1790415148045805454} + m_TransformParent: {fileID: 677928193} m_Modifications: - target: {fileID: 1025665394565778737, guid: e8edc26a8f07c49be83500b71c25e43c, type: 3} @@ -2862,27 +3110,27 @@ PrefabInstance: - target: {fileID: 1025665394565778737, guid: e8edc26a8f07c49be83500b71c25e43c, type: 3} propertyPath: m_LocalRotation.x - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 1025665394565778737, guid: e8edc26a8f07c49be83500b71c25e43c, type: 3} propertyPath: m_LocalRotation.y - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 1025665394565778737, guid: e8edc26a8f07c49be83500b71c25e43c, type: 3} propertyPath: m_LocalRotation.z - value: 0 + value: -0 objectReference: {fileID: 0} - target: {fileID: 1025665394565778737, guid: e8edc26a8f07c49be83500b71c25e43c, type: 3} propertyPath: m_AnchoredPosition.x - value: -103 + value: -105.28497 objectReference: {fileID: 0} - target: {fileID: 1025665394565778737, guid: e8edc26a8f07c49be83500b71c25e43c, type: 3} propertyPath: m_AnchoredPosition.y - value: 0 + value: -2.6600647 objectReference: {fileID: 0} - target: {fileID: 1025665394565778737, guid: e8edc26a8f07c49be83500b71c25e43c, type: 3} @@ -2904,6 +3152,11 @@ PrefabInstance: propertyPath: m_Name value: Fx_Star_Yellow_Small objectReference: {fileID: 0} + - target: {fileID: 1025665394565778742, guid: e8edc26a8f07c49be83500b71c25e43c, + type: 3} + propertyPath: m_Materials.Array.size + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] m_AddedGameObjects: [] @@ -3194,6 +3447,43 @@ MonoBehaviour: m_EffectColor: {r: 0, g: 0, b: 0, a: 1} m_EffectDistance: {x: 2, y: -2} m_UseGraphicAlpha: 1 +--- !u!1 &643849271 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 643849272} + m_Layer: 5 + m_Name: FillBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &643849272 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 643849271} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1031903493} + - {fileID: 321544147} + m_Father: {fileID: 677928193} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 56.99, y: -1.6601} + m_SizeDelta: {x: 463.43, y: 102} + m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &649038455 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3269,6 +3559,84 @@ MonoBehaviour: m_EffectColor: {r: 0, g: 0, b: 0, a: 1} m_EffectDistance: {x: 2, y: -2} m_UseGraphicAlpha: 1 +--- !u!1 &677928192 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 677928193} + - component: {fileID: 677928195} + - component: {fileID: 677928194} + m_Layer: 5 + m_Name: BG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &677928193 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 677928192} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1790415148045805448} + - {fileID: 535983221} + - {fileID: 643849272} + m_Father: {fileID: 1769816849} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 624, y: 149} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &677928194 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 677928192} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: 902583f27a031d84694e2f718cf0494c, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &677928195 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 677928192} + m_CullTransparentMesh: 1 --- !u!114 &692513624 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3839,6 +4207,7 @@ GameObject: - component: {fileID: 902008755} - component: {fileID: 902008757} - component: {fileID: 902008756} + - component: {fileID: 902008758} m_Layer: 5 m_Name: Glow m_TagString: Untagged @@ -3853,7 +4222,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 902008754} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -3903,13 +4272,118 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 902008754} m_CullTransparentMesh: 1 ---- !u!114 &915199258 +--- !u!114 &902008758 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1790415148045804994} + m_GameObject: {fileID: 902008754} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d0390bd8b8ffd640b34fe25065ff1df, type: 3} + m_Name: + m_EditorClassIdentifier: + updateType: 0 + isSpeedBased: 0 + hasOnStart: 0 + hasOnPlay: 0 + hasOnUpdate: 0 + hasOnStepComplete: 0 + hasOnComplete: 0 + hasOnTweenCreated: 0 + hasOnRewind: 0 + onStart: + m_PersistentCalls: + m_Calls: [] + onPlay: + m_PersistentCalls: + m_Calls: [] + onUpdate: + m_PersistentCalls: + m_Calls: [] + onStepComplete: + m_PersistentCalls: + m_Calls: [] + onComplete: + m_PersistentCalls: + m_Calls: [] + onTweenCreated: + m_PersistentCalls: + m_Calls: [] + onRewind: + m_PersistentCalls: + m_Calls: [] + targetIsSelf: 1 + targetGO: {fileID: 0} + tweenTargetIsTargetGO: 1 + delay: 0 + duration: 4 + easeType: 1 + easeCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + loopType: 1 + loops: -1 + id: + isRelative: 1 + isFrom: 0 + isIndependentUpdate: 0 + autoKill: 1 + isActive: 1 + isValid: 1 + target: {fileID: 902008755} + animationType: 11 + targetType: 11 + forcedTargetType: 0 + autoPlay: 1 + useTargetAsV3: 0 + endValueFloat: 0 + endValueV3: {x: 0.2, y: 0.2, z: 0.2} + endValueV2: {x: 0, y: 0} + endValueColor: {r: 1, g: 1, b: 1, a: 1} + endValueString: + endValueRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + endValueTransform: {fileID: 0} + optionalBool0: 0 + optionalFloat0: 0 + optionalInt0: 1 + optionalRotationMode: 0 + optionalScrambleMode: 0 + optionalString: +--- !u!114 &915199258 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1790415148045804994} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3} @@ -4192,6 +4666,82 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 1031050248} m_PrefabAsset: {fileID: 0} +--- !u!1 &1031903492 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1031903493} + - component: {fileID: 1031903495} + - component: {fileID: 1031903494} + m_Layer: 5 + m_Name: FillBG + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1031903493 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1031903492} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1790415148045805372} + m_Father: {fileID: 643849272} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 14.4, y: 0.000013351} + m_SizeDelta: {x: 412, y: 65} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1031903494 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1031903492} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: af4f1d2a60e8f5947888ee6d48606ff4, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1031903495 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1031903492} + m_CullTransparentMesh: 1 --- !u!1 &1032011515 GameObject: m_ObjectHideFlags: 0 @@ -4338,6 +4888,8 @@ GameObject: - component: {fileID: 1045843564} - component: {fileID: 1045843566} - component: {fileID: 1045843565} + - component: {fileID: 1045843568} + - component: {fileID: 1045843567} m_Layer: 5 m_Name: Glow (1) m_TagString: Untagged @@ -4352,7 +4904,7 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1045843563} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 @@ -4377,7 +4929,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 0.4392157} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -4402,6 +4954,216 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1045843563} m_CullTransparentMesh: 1 +--- !u!114 &1045843567 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1045843563} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d0390bd8b8ffd640b34fe25065ff1df, type: 3} + m_Name: + m_EditorClassIdentifier: + updateType: 0 + isSpeedBased: 0 + hasOnStart: 0 + hasOnPlay: 0 + hasOnUpdate: 0 + hasOnStepComplete: 0 + hasOnComplete: 0 + hasOnTweenCreated: 0 + hasOnRewind: 0 + onStart: + m_PersistentCalls: + m_Calls: [] + onPlay: + m_PersistentCalls: + m_Calls: [] + onUpdate: + m_PersistentCalls: + m_Calls: [] + onStepComplete: + m_PersistentCalls: + m_Calls: [] + onComplete: + m_PersistentCalls: + m_Calls: [] + onTweenCreated: + m_PersistentCalls: + m_Calls: [] + onRewind: + m_PersistentCalls: + m_Calls: [] + targetIsSelf: 1 + targetGO: {fileID: 0} + tweenTargetIsTargetGO: 1 + delay: 0 + duration: 1 + easeType: 1 + easeCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + loopType: 1 + loops: -1 + id: + isRelative: 0 + isFrom: 0 + isIndependentUpdate: 0 + autoKill: 1 + isActive: 1 + isValid: 1 + target: {fileID: 1045843564} + animationType: 5 + targetType: 11 + forcedTargetType: 0 + autoPlay: 1 + useTargetAsV3: 0 + endValueFloat: 1.5 + endValueV3: {x: 0, y: 0, z: 0} + endValueV2: {x: 0, y: 0} + endValueColor: {r: 1, g: 1, b: 1, a: 1} + endValueString: + endValueRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + endValueTransform: {fileID: 0} + optionalBool0: 1 + optionalFloat0: 1 + optionalInt0: 10 + optionalRotationMode: 0 + optionalScrambleMode: 0 + optionalString: +--- !u!114 &1045843568 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1045843563} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d0390bd8b8ffd640b34fe25065ff1df, type: 3} + m_Name: + m_EditorClassIdentifier: + updateType: 0 + isSpeedBased: 0 + hasOnStart: 0 + hasOnPlay: 0 + hasOnUpdate: 0 + hasOnStepComplete: 0 + hasOnComplete: 0 + hasOnTweenCreated: 0 + hasOnRewind: 0 + onStart: + m_PersistentCalls: + m_Calls: [] + onPlay: + m_PersistentCalls: + m_Calls: [] + onUpdate: + m_PersistentCalls: + m_Calls: [] + onStepComplete: + m_PersistentCalls: + m_Calls: [] + onComplete: + m_PersistentCalls: + m_Calls: [] + onTweenCreated: + m_PersistentCalls: + m_Calls: [] + onRewind: + m_PersistentCalls: + m_Calls: [] + targetIsSelf: 1 + targetGO: {fileID: 0} + tweenTargetIsTargetGO: 1 + delay: 0 + duration: 5 + easeType: 1 + easeCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + loopType: 2 + loops: -1 + id: + isRelative: 1 + isFrom: 0 + isIndependentUpdate: 0 + autoKill: 1 + isActive: 1 + isValid: 1 + target: {fileID: 1045843564} + animationType: 4 + targetType: 11 + forcedTargetType: 0 + autoPlay: 1 + useTargetAsV3: 0 + endValueFloat: 0 + endValueV3: {x: 0, y: 0, z: 180} + endValueV2: {x: 0, y: 0} + endValueColor: {r: 1, g: 1, b: 1, a: 1} + endValueString: + endValueRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + endValueTransform: {fileID: 0} + optionalBool0: 0 + optionalFloat0: 0 + optionalInt0: 0 + optionalRotationMode: 0 + optionalScrambleMode: 0 + optionalString: --- !u!1 &1047192091 GameObject: m_ObjectHideFlags: 0 @@ -5389,18 +6151,18 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1133887757} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 794157564} - {fileID: 1943962637} - m_Father: {fileID: 1790415148045805377} + m_Father: {fileID: 1326188069} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 8.35, y: 123.1} + m_AnchoredPosition: {x: 8.35, y: 68.10603} m_SizeDelta: {x: 579.16, y: 440.07} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1133887759 @@ -5575,7 +6337,7 @@ PrefabInstance: - target: {fileID: 1025665394565778737, guid: e8edc26a8f07c49be83500b71c25e43c, type: 3} propertyPath: m_AnchoredPosition.x - value: -70 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1025665394565778737, guid: e8edc26a8f07c49be83500b71c25e43c, type: 3} @@ -5630,7 +6392,7 @@ GameObject: - component: {fileID: 1206281567} - component: {fileID: 1206281566} m_Layer: 5 - m_Name: Image + m_Name: Coin m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -5643,17 +6405,17 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1206281564} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: -1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1790415148045805445} + m_Father: {fileID: 2082521154} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -71.59999, y: 0} - m_SizeDelta: {x: 90, y: 90} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 73.130035, y: 0} + m_SizeDelta: {x: 93, y: 105} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1206281566 MonoBehaviour: @@ -5675,7 +6437,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 422f3e06006bb4826a06312e4be613d3, type: 3} + m_Sprite: {fileID: 21300000, guid: 775a8da215621064f93da332e47e25e0, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -6223,21 +6985,6 @@ MonoBehaviour: m_EffectColor: {r: 0, g: 0, b: 0, a: 1} m_EffectDistance: {x: 1, y: -2} m_UseGraphicAlpha: 1 ---- !u!114 &1293449859 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1790415148045804893} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: e19747de3f5aca642ab2be37e372fb86, type: 3} - m_Name: - m_EditorClassIdentifier: - m_EffectColor: {r: 0, g: 0, b: 0, a: 1} - m_EffectDistance: {x: 2, y: -2} - m_UseGraphicAlpha: 1 --- !u!1 &1295261884 GameObject: m_ObjectHideFlags: 0 @@ -6337,13 +7084,91 @@ CanvasGroup: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1295261884} - m_Enabled: 1 - m_Alpha: 0 - m_Interactable: 1 - m_BlocksRaycasts: 1 - m_IgnoreParentGroups: 0 ---- !u!1 &1300430263 + m_GameObject: {fileID: 1295261884} + m_Enabled: 1 + m_Alpha: 0 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 +--- !u!1 &1300430263 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1300430264} + - component: {fileID: 1300430266} + - component: {fileID: 1300430265} + m_Layer: 5 + m_Name: BottomBar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1300430264 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1300430263} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1444235781} + - {fileID: 1790415148045805345} + - {fileID: 1790415148045805287} + m_Father: {fileID: 1790415148045805377} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: 0, y: 155} + m_SizeDelta: {x: 0, y: 310} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1300430265 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1300430263} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: b61530cc9caf46142b660f364221819e, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1300430266 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1300430263} + m_CullTransparentMesh: 1 +--- !u!1 &1326188068 GameObject: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -6351,45 +7176,44 @@ GameObject: m_PrefabAsset: {fileID: 0} serializedVersion: 6 m_Component: - - component: {fileID: 1300430264} - - component: {fileID: 1300430266} - - component: {fileID: 1300430265} + - component: {fileID: 1326188069} + - component: {fileID: 1326188071} + - component: {fileID: 1326188070} m_Layer: 5 - m_Name: BottomBar + m_Name: CenterPanel m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 m_IsActive: 1 ---- !u!224 &1300430264 +--- !u!224 &1326188069 RectTransform: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1300430263} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_GameObject: {fileID: 1326188068} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1444235781} - - {fileID: 1790415148045805345} - - {fileID: 1790415148045805287} + - {fileID: 1133887758} + - {fileID: 382341785} m_Father: {fileID: 1790415148045805377} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0} - m_AnchorMax: {x: 0.5, y: 0} - m_AnchoredPosition: {x: 0, y: 155} - m_SizeDelta: {x: 1080, y: 310} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 54.993896} + m_SizeDelta: {x: 0, y: -510} m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &1300430265 +--- !u!114 &1326188070 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1300430263} + m_GameObject: {fileID: 1326188068} m_Enabled: 1 m_EditorHideFlags: 0 m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} @@ -6403,7 +7227,7 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: b61530cc9caf46142b660f364221819e, type: 3} + m_Sprite: {fileID: 21300000, guid: b91e029d94a4731498459eac8f0e193d, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 @@ -6413,13 +7237,13 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 ---- !u!222 &1300430266 +--- !u!222 &1326188071 CanvasRenderer: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1300430263} + m_GameObject: {fileID: 1326188068} m_CullTransparentMesh: 1 --- !u!1 &1336803836 GameObject: @@ -7482,6 +8306,81 @@ MonoBehaviour: m_EffectColor: {r: 0, g: 0, b: 0, a: 1} m_EffectDistance: {x: 1, y: -2} m_UseGraphicAlpha: 1 +--- !u!1 &1485155970 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1485155971} + - component: {fileID: 1485155973} + - component: {fileID: 1485155972} + m_Layer: 5 + m_Name: AddBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1485155971 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485155970} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 2082521154} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0.5} + m_AnchorMax: {x: 1, y: 0.5} + m_AnchoredPosition: {x: -80.399994, y: 0} + m_SizeDelta: {x: 90, y: 90} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1485155972 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485155970} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: a0489a25e81d5f54b954851b1a5b0a61, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1485155973 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1485155970} + m_CullTransparentMesh: 1 --- !u!114 &1489808991 MonoBehaviour: m_ObjectHideFlags: 0 @@ -8391,13 +9290,15 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1790415148045805445} + - {fileID: 2082521154} + - {fileID: 1769816849} + - {fileID: 1790415148045805285} m_Father: {fileID: 1790415148045805377} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 1} - m_AnchorMax: {x: 0.5, y: 1} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: -100} - m_SizeDelta: {x: 1080, y: 200} + m_SizeDelta: {x: 0, y: 200} m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1733514551 MonoBehaviour: @@ -8482,6 +9383,43 @@ MonoBehaviour: m_EffectColor: {r: 0, g: 0, b: 0, a: 1} m_EffectDistance: {x: 1, y: -2} m_UseGraphicAlpha: 1 +--- !u!1 &1769816848 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1769816849} + m_Layer: 5 + m_Name: Level + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1769816849 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1769816848} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 677928193} + - {fileID: 1790415148045805454} + m_Father: {fileID: 1733514550} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -181.45, y: -218.86} + m_SizeDelta: {x: 647.1, y: 165.72} + m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &1827497292 MonoBehaviour: m_ObjectHideFlags: 0 @@ -8979,6 +9917,44 @@ MonoBehaviour: m_EffectColor: {r: 0, g: 0, b: 0, a: 1} m_EffectDistance: {x: 1, y: -2} m_UseGraphicAlpha: 1 +--- !u!1 &2082521153 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2082521154} + m_Layer: 5 + m_Name: Coins + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2082521154 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2082521153} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1790415148045805445} + - {fileID: 1206281565} + - {fileID: 1485155971} + m_Father: {fileID: 1733514550} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 252, y: 0.000030517578} + m_SizeDelta: {x: 464.26, y: 124.600006} + m_Pivot: {x: 0.5, y: 0.5} --- !u!114 &2095875057 MonoBehaviour: m_ObjectHideFlags: 0 @@ -9501,7 +10477,7 @@ GameObject: - component: {fileID: 1790415148045805483} - component: {fileID: 1790415148045805484} m_Layer: 5 - m_Name: Setting + m_Name: Settings m_TagString: m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -9516,9 +10492,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 1790415148045805286} - - component: {fileID: 1790415148045805105} - - component: {fileID: 1790415148045805485} - - component: {fileID: 1293449859} + - component: {fileID: 363640467} + - component: {fileID: 363640466} m_Layer: 5 m_Name: StarRankText m_TagString: @@ -12719,7 +13694,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!1 &1790415148045805064 GameObject: m_ObjectHideFlags: 0 @@ -16037,14 +17012,6 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1790415148045804892} m_CullTransparentMesh: 0 ---- !u!222 &1790415148045805105 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1790415148045804893} - m_CullTransparentMesh: 0 --- !u!222 &1790415148045805106 CanvasRenderer: m_ObjectHideFlags: 0 @@ -17513,18 +18480,18 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1790415148045804892} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1716425410} - m_Father: {fileID: 1790415148045805377} + m_Father: {fileID: 1733514550} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 1} - m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 76, y: -334} - m_SizeDelta: {x: 118, y: 135} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: -95, y: -100} + m_SizeDelta: {x: 101.7, y: 116.35} m_Pivot: {x: 0.5, y: 0.5} --- !u!224 &1790415148045805286 RectTransform: @@ -17542,8 +18509,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 50, y: 50} + m_AnchoredPosition: {x: -2.1, y: 1.3} + m_SizeDelta: {x: 63.65, y: 63.65} m_Pivot: {x: 0.5, y: 0.5} --- !u!224 &1790415148045805287 RectTransform: @@ -17845,7 +18812,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 30, y: 0} + m_AnchoredPosition: {x: -318.5, y: 0} m_SizeDelta: {x: 280, y: 70} m_Pivot: {x: 0, y: 0.5} --- !u!224 &1790415148045805302 @@ -18710,7 +19677,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 30, y: 0} + m_AnchoredPosition: {x: -508, y: 0} m_SizeDelta: {x: 500, y: 70} m_Pivot: {x: 0, y: 1} --- !u!224 &1790415148045805345 @@ -18915,7 +19882,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 30, y: 0} + m_AnchoredPosition: {x: -318.5, y: 0} m_SizeDelta: {x: 280, y: 70} m_Pivot: {x: 0, y: 0.5} --- !u!224 &1790415148045805355 @@ -18991,7 +19958,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 30, y: 0} + m_AnchoredPosition: {x: -318.5, y: 0} m_SizeDelta: {x: 280, y: 70} m_Pivot: {x: 0, y: 0.5} --- !u!224 &1790415148045805359 @@ -19239,17 +20206,17 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1790415148045804981} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] - m_Father: {fileID: 1790415148045805454} + m_Father: {fileID: 1031903493} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 212, y: 32.49999} + m_SizeDelta: {x: 400, y: 65} m_Pivot: {x: 0.5, y: 0.5} --- !u!224 &1790415148045805373 RectTransform: @@ -19354,9 +20321,7 @@ RectTransform: m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - - {fileID: 1790415148045805454} - - {fileID: 1133887758} - - {fileID: 1790415148045805285} + - {fileID: 1326188069} - {fileID: 1733514550} - {fileID: 1300430264} m_Father: {fileID: 1790415148045805308} @@ -19744,7 +20709,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 30, y: 0} + m_AnchoredPosition: {x: -508, y: 0} m_SizeDelta: {x: 500, y: 70} m_Pivot: {x: 0, y: 1} --- !u!224 &1790415148045805397 @@ -19763,7 +20728,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 30, y: 0} + m_AnchoredPosition: {x: -318.5, y: 0} m_SizeDelta: {x: 280, y: 70} m_Pivot: {x: 0, y: 0.5} --- !u!224 &1790415148045805398 @@ -19858,7 +20823,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 30, y: 0} + m_AnchoredPosition: {x: -508, y: 0} m_SizeDelta: {x: 500, y: 70} m_Pivot: {x: 0, y: 1} --- !u!224 &1790415148045805403 @@ -20418,7 +21383,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: 30, y: 0} + m_AnchoredPosition: {x: -318.5, y: 0} m_SizeDelta: {x: 280, y: 70} m_Pivot: {x: 0, y: 0.5} --- !u!224 &1790415148045805431 @@ -20496,8 +21461,8 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 30.64, y: 3.3999996} - m_SizeDelta: {x: 93.36, y: 60} + m_AnchoredPosition: {x: -14.729996, y: -0.22999954} + m_SizeDelta: {x: 211.2, y: 72.42} m_Pivot: {x: 0.5, y: 0.5} --- !u!224 &1790415148045805435 RectTransform: @@ -20714,14 +21679,13 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1790415148045805434} - - {fileID: 1206281565} - {fileID: 1192910358} - m_Father: {fileID: 1733514550} + m_Father: {fileID: 2082521154} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 1, y: 1} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -15, y: -30} - m_SizeDelta: {x: 162.9, y: 50} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 173, y: 38.5} + m_SizeDelta: {x: 332, y: 77} m_Pivot: {x: 1, y: 1} --- !u!224 &1790415148045805446 RectTransform: @@ -20770,18 +21734,18 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1790415148045805057} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1790415148045805286} - m_Father: {fileID: 1790415148045805454} + m_Father: {fileID: 677928193} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 0, y: 0.5} - m_AnchoredPosition: {x: -5.5, y: 0.8999996} - m_SizeDelta: {x: 70, y: 70} + m_AnchoredPosition: {x: 71.399994, y: -1.6601} + m_SizeDelta: {x: 102, y: 102} m_Pivot: {x: 0.5, y: 0.5} --- !u!224 &1790415148045805449 RectTransform: @@ -20818,7 +21782,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 30, y: 0} + m_AnchoredPosition: {x: -508, y: 0} m_SizeDelta: {x: 500, y: 70} m_Pivot: {x: 0, y: 1} --- !u!224 &1790415148045805451 @@ -20891,20 +21855,17 @@ RectTransform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1790415148045805063} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 1790415148045805372} - - {fileID: 1790415148045805448} - - {fileID: 535983221} - m_Father: {fileID: 1790415148045805377} + m_Children: [] + m_Father: {fileID: 1769816849} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 65, y: -30} - m_SizeDelta: {x: 194, y: 50} + m_AnchoredPosition: {x: 12, y: -16.999985} + m_SizeDelta: {x: 618.53, y: 137.04} m_Pivot: {x: 0, y: 1} --- !u!224 &1790415148045805455 RectTransform: @@ -20983,7 +21944,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 0, y: 1} - m_AnchoredPosition: {x: 30, y: 0} + m_AnchoredPosition: {x: -508, y: 0} m_SizeDelta: {x: 500, y: 70} m_Pivot: {x: 0, y: 1} --- !u!224 &1790415148045805459 @@ -21022,7 +21983,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -30.410034, y: -17.600006} + m_AnchoredPosition: {x: -30.410034, y: -17.599976} m_SizeDelta: {x: 62.59, y: 58.1} m_Pivot: {x: 1, y: 1} --- !u!224 &1790415148045805461 @@ -21042,7 +22003,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -30.410034, y: -19.899994} + m_AnchoredPosition: {x: -30.410034, y: -19.900024} m_SizeDelta: {x: 62.59, y: 58.1} m_Pivot: {x: 1, y: 1} --- !u!224 &1790415148045805462 @@ -21536,40 +22497,6 @@ MonoBehaviour: m_StringArgument: m_BoolArgument: 0 m_CallState: 2 ---- !u!114 &1790415148045805485 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1790415148045804893} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_FontData: - m_Font: {fileID: 12800000, guid: c16eb7d7c3953489db00312b8b09df4b, type: 3} - m_FontSize: 14 - m_FontStyle: 0 - m_BestFit: 1 - m_MinSize: 10 - m_MaxSize: 30 - m_Alignment: 4 - m_AlignByGeometry: 1 - m_RichText: 1 - m_HorizontalOverflow: 0 - m_VerticalOverflow: 0 - m_LineSpacing: 1 - m_Text: 1 --- !u!114 &1790415148045805486 MonoBehaviour: m_ObjectHideFlags: 0 @@ -22569,7 +23496,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 35205bc3bac4a08ee9042fe67b3d655e, type: 3} m_Name: m_EditorClassIdentifier: - starRanklbl: {fileID: 1790415148045805485} + starRanklbl: {fileID: 0} coinLbl: {fileID: 1790415148045805690} starRankBar: {fileID: 1790415148045805598} groupList: {fileID: 1790415148045804924} @@ -25227,12 +26154,12 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 1f44cb90b6ae648c783dac573bfe9cd0, type: 3} + m_Sprite: {fileID: 21300000, guid: 1f189fbdab51e954d962c1773617b1e7, type: 3} m_Type: 3 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 0 - m_FillAmount: 0.5 + m_FillAmount: 0.072 m_FillClockwise: 1 m_FillOrigin: 0 m_UseSpriteMesh: 0 @@ -25771,8 +26698,8 @@ MonoBehaviour: m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 4c95714486ef949438634bdbd26b8887, type: 3} - m_Type: 1 + m_Sprite: {fileID: 21300000, guid: c76ec1bc595fdde489d359c33a25b3ad, type: 3} + m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 m_FillMethod: 4 @@ -28190,19 +29117,19 @@ MonoBehaviour: m_PersistentCalls: m_Calls: [] m_FontData: - m_Font: {fileID: 12800000, guid: c16eb7d7c3953489db00312b8b09df4b, type: 3} - m_FontSize: 26 + m_Font: {fileID: 12800000, guid: 7cf69ed96c6a9f64597118d8c095ff90, type: 3} + m_FontSize: 50 m_FontStyle: 0 m_BestFit: 1 m_MinSize: 15 - m_MaxSize: 34 + m_MaxSize: 50 m_Alignment: 4 m_AlignByGeometry: 1 m_RichText: 1 m_HorizontalOverflow: 0 m_VerticalOverflow: 0 m_LineSpacing: 1 - m_Text: 10 + m_Text: 999999 --- !u!114 &1790415148045805691 MonoBehaviour: m_ObjectHideFlags: 0 @@ -28397,14 +29324,14 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 0.81186235, g: 1, b: 0, a: 1} + m_Color: {r: 1, g: 1, b: 1, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: m_Calls: [] - m_Sprite: {fileID: 21300000, guid: 82857232218d743c0bdd3f145cd1120f, type: 3} + m_Sprite: {fileID: 21300000, guid: 3f5d33ba819805a48a3fc27f5de4c20e, type: 3} m_Type: 0 m_PreserveAspect: 0 m_FillCenter: 1 diff --git a/Assets/Resources/DOTweenSettings.asset b/Assets/Resources/DOTweenSettings.asset new file mode 100644 index 00000000..0e87b0b4 --- /dev/null +++ b/Assets/Resources/DOTweenSettings.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 16995157, guid: a811bde74b26b53498b4f6d872b09b6d, type: 3} + m_Name: DOTweenSettings + m_EditorClassIdentifier: + useSafeMode: 1 + timeScale: 1 + useSmoothDeltaTime: 0 + maxSmoothUnscaledTime: 0.15 + rewindCallbackMode: 0 + showUnityEditorReport: 0 + logBehaviour: 0 + drawGizmos: 1 + defaultRecyclable: 0 + defaultAutoPlay: 3 + defaultUpdateType: 0 + defaultTimeScaleIndependent: 0 + defaultEaseType: 6 + defaultEaseOvershootOrAmplitude: 1.70158 + defaultEasePeriod: 0 + defaultAutoKill: 1 + defaultLoopType: 0 + storeSettingsLocation: 0 + modules: + showPanel: 0 + audioEnabled: 1 + physicsEnabled: 1 + physics2DEnabled: 1 + spriteEnabled: 1 + uiEnabled: 1 + textMeshProEnabled: 0 + tk2DEnabled: 0 + showPlayingTweens: 0 + showPausedTweens: 0 diff --git a/Assets/Resources/DOTweenSettings.asset.meta b/Assets/Resources/DOTweenSettings.asset.meta new file mode 100644 index 00000000..21ad4a08 --- /dev/null +++ b/Assets/Resources/DOTweenSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 94cdb104bada80e4486ceaa0ee4ca0ad +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant:

    )6s%O530l z{4^Z>E~WjJ(&mEpKlA>up^5yT=nJ7H!nB;}NstlCdTeCCd50_L@sDUXCW(wJ zJ$g$)c^6N>6JVa8tK9-|DfD68yc-WM)_IUoFXHA1FD+v#Dub>fkpK;I7>Ftu(-knv zFA8Kiv@cgscVdHQ28-CufuLLK$G$H0xV#=8`}h{^trTy0FZON;HcJIi zU!Z{=f>2Qfr2^pWwp0qK{sfXDg-g|S0$IKV-&WPvD+l4*1eaGSh=43m2t)zj$3juy zx=a+YSKu$Uzf5~P5)mI2vO?^N636q;JBrzrp)BFAavSZjmeSBW9mU$Q633k*V-YzO z3K!QM7YmBRp_+rOTMEyodlnZ9FQxl(p5<;(Z=8K1bMMC_}DrC|!-?9&C{OHR!w#wav6b`p6G9S_7DN=WRCfrI)lv z-yVI#_z9awbHiiWnwPc5-+WX1>uYS|#BEd0zI7ruINZiaFGG8Rwp=brtFcWa0=zo( zk9AcPI&Ayrs^ur|c;(e@iJ=|uz6*PH<%jFHe0I6EO8B{`bG%)TQ`iRWGin2_m7q|Hc!mUae6=L2Z4)`+V*c zP-|gy{{d|u-9@eZc++oJY7sX$kOk}}ZCOh6kLcXJho<4!Nr0WYNZw}af;~oKl4ge} z4oX_sj+9Y&*!^+@A*Amf47apR)!}}yYstghacL^#94mN z3qHTcSGlrR+tR|G1F|>$ZQ7b2?ryPaxz7{uz3%mQ@6kV&XrI@9-^&YMTsCJSfZjs^ zcd}DFKaicB?W|n>;Ntar7m-Z`+bpdD*}$C6Z8T2d4fHo4X5*07UPs-Of~2>vrNsT9 z#I5Ov1L0^LOp(ksvi`W71GIEarI{LRG`1TQHA58UEcT1`&5dA&QstAnc00SAo5q{8 zf4)$#g-Q2`RjE|kKJ23I-7gv@{Dzg(y?vinw*~4z-(v~Xq0cF0j20!}ZiFiMXh(Y_ zE-Kc(FLrBgDHLSq6}x_sesLAES%HwGdE#;_2Ra;e-;4f)&+By597NuMu6hdSw&HTI z(B;Mi)kV||3Ra=p5^+hfb_#0piNPS7RqWEfP+~zg4ZNIo?k?88jeD1` z*6WVfeGA25MPheo1GK-10djq64#wkblJ)>}3-AN&lV<`y;PcSDOnz0Sv6;3qU5882 zvi&O-)RqQR!+aIsJ0b!CgQ<&#?XILuT|ag7W6`z^-Vx z_QO72>~>f%Jz$HT*l8`XVn&coixt0)y~gK{VYGjK`-?0r;!+_4YwPza{pr zjoc1sL{%e)m2iv8QxXvEgOYXKV6x6WJ5Z#p3Wglwt--jI0Ofp_0S1ie3q8Xw)vm^Nk}bDy23y|BhLJdv4~qvAi;xS^n3cw{9{XnE zYuEFJH}k?y5XKV?_^PR~m`Z~~*57bA`-;fF$t7!GGHpWrVd(QKL1tMfvmi{PhO-IN zKL#u?u2T^(j5Y=)pqp@NxV(V}np%ndv{Kl>9nmAH)R7zI%M4dE#p6vAp-~Q(>FWnB!B`&F+%4}h@BVTf6yZT2{yb#Lm|--N zZDiu3n_2eqT!-s!K^=Mf%**$$C*XGH~d-d2iVMA=dV6O<5I9y)_)0mu+fpDS=nwRWA?yZ=F{@5h3ys_a zu{JC4Dd_80MgD@NckR|b+_jsP?z(Sj@%Kyn_ggY(@RELgE*UI6>P^<(9F7)*N9<(r zT{~IPgQE)Sp6zwXkReO^^<6e(=;B`3PiujPl}et@gRUfT2#^6AIFXQ>4wGGDS4G^x zN_X$lKHPoR(gJ_cSI|&!(5sdX?sG|>eoF=qTGFro(!tXE4{D$8+@&4eIU)=mp!|)UVXkRg}!f_|*5KQ4^|IsDh_H1==pvpfI73jVfa�i|W^ce1 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 b(hF9XUa*h{-F4sd`|7K9b#?W0b=%cx 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 literal 0 HcmV?d00001 diff --git a/Assets/NewUI/MainMenu/LevelBar/Rounded Rectangle 1029 copy 10.png.meta b/Assets/NewUI/MainMenu/LevelBar/Rounded Rectangle 1029 copy 10.png.meta new file mode 100644 index 00000000..e57824a3 --- /dev/null +++ b/Assets/NewUI/MainMenu/LevelBar/Rounded Rectangle 1029 copy 10.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: af4f1d2a60e8f5947888ee6d48606ff4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NewUI/MainMenu/LevelBar/bg.png b/Assets/NewUI/MainMenu/LevelBar/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..e19a29f318dc6c50f35571ae23001955989c4de2 GIT binary patch literal 2811 zcmeHJ`(M&mA3xZ2Io%fp&7K*jC zcC-cn*zVuA_Xq%1cz9g0dL4=uJZXkP&YazsYpEX+NF$`17#4Q^5IkjaJG#`o1Vv38AY5&qdS~K zbG>>*7{leXhPw!WA1@;CA<@Rv(d&yzJ)g%8R1u?~G9vPi3K$h zp6Gmo z<{Unh_xr!CroEIbAq#0PQ;if_Oi#uqC)WT_o1L4B(ay1AMt?m#Sa3~oKvvkSV%)Zx zK88+UuJOp`N%8xs?|*7I=Mx&^0N35-7IfE3i=PmVXcvU}yW%27;){(;JtGuhTI2)} z9sCY+DC)QGpvZ*vM#C&jDWAwTZ&O*r(g96QZ!$Nu?3Jt};FueSdiPWOSiYKIGnwA4 zqb=M@m6cd1@wrbN`|ZEHWEp4GE1%6CmEo6SYDhS$Z>lE%tnGs$MnBgkUTWN^N1o@C z=xZDC>9UbA3M3Gv}4=>E2)s8N# zQ;WlCnU>(90RaGsjt)o$KiT3t(z3p$u0V%k@s|cBdC`mocKKgv#mlmSA#oaxTfKDS zR-?Y?LelSxbAt4Yf2GQ5ukOv56wg^Z0dN)>IW8{ceB8MBS8Pc}Pf-SEsonm3gFbe`ta*k(^MXw)@fIb)tJnqf@PEx;nwB@*9R0}^#{uKw05OrAP z)cud}-s#m*g-`yJ#qj`md>Pls*gBxA*fLbzi+SG^F1h9k5(UzkGcHvxpA%+o>Xqvw zSMLNr_6uIHclr1KN|<@4SElq#%&;f`RELE7_P^OOqE1#_>}370#doMS(=fb45vN2 z9IDcq%!A=p(|S&!|M6Gv=1<|sIN#{QEckou;Xg@?@n?qmMj4Mn1tzWRu7ET*i26Y? z^$A-&x2TF7fr(41NL@cwVw>M->$2g=fqR*n1?LuT-=28lLfXYr{6NJzVczB>8TU54 zT{*6vp_k8Xw~dIt^HYX`zIBxb>PlTO@)T{&hKZaS%I>@LJB|I;pyT2df&5{mBr(GA z4&6YDEZua~gWm6iA0X^jNnSkAxiEigcc#C85VLH4xXSoo)fpIwi|_}P5UCJsXZ|Lv zpYDcFQSV9r?FmllH!*aclZU>rHG%Yk*qYo;?`EzbI=U$b?c;2kEb^H=*dnOHBKnKI z(h!oUI{U`!gX;_lUpkx2N-u?)fC%`c;aC z|4RRAsYtrcLf(_TXwuC-Z0bC)1`K^I_^^58d^Rf-bF(0^_exnwiBPDgCjDwt8y;u5 zWb7Y*&28y|0&fREF;87Ka5OITrkeq!NY-&*p@)73woBiqn9^iJcn`svy%=#OrcIcI zQQvWUHIt>PecN*B00iC_Szc@;-zbI^X0*iGlo-@uC2~)KIv{okcgyfkFar!d978pI*_$ zU3HKUf7K}FY&cthgpI}_(O7O~^DCs8`jRA^xW4O%GLH(KQPK{)HWDNBp3FJQu}q;A yz*fCg|4jJy8lap8gx5bvaA` literal 0 HcmV?d00001 diff --git a/Assets/NewUI/MainMenu/LevelBar/bg.png.meta b/Assets/NewUI/MainMenu/LevelBar/bg.png.meta new file mode 100644 index 00000000..267cd34f --- /dev/null +++ b/Assets/NewUI/MainMenu/LevelBar/bg.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: 902583f27a031d84694e2f718cf0494c +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NewUI/MainMenu/LevelBar/level no_.png b/Assets/NewUI/MainMenu/LevelBar/level no_.png new file mode 100644 index 0000000000000000000000000000000000000000..c9f360a04cc136a1706dfcb9e498dac67ec1b4b8 GIT binary patch literal 4149 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 JPDHLkV1hPGEUN$j literal 0 HcmV?d00001 diff --git a/Assets/NewUI/MainMenu/LevelBar/level up_.png.meta b/Assets/NewUI/MainMenu/LevelBar/level up_.png.meta new file mode 100644 index 00000000..a11884a3 --- /dev/null +++ b/Assets/NewUI/MainMenu/LevelBar/level up_.png.meta @@ -0,0 +1,140 @@ +fileFormatVersion: 2 +guid: a5a0fb12940a61840991b11982604880 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 12 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 0 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Server + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/NewUI/MainMenu/LevelBar/loading bar 1.png b/Assets/NewUI/MainMenu/LevelBar/loading bar 1.png new file mode 100644 index 0000000000000000000000000000000000000000..14fa0096f1faa65b4e79043284ab715c87df0edd GIT binary patch literal 1254 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

  • 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